0

我正在尝试在 c# 中做一个进度条,但我无法将它更新到 90% 并重置。但如果我显示一个消息框,那么它会填满。这段代码一直填满

    public void mess(string s)
    {
        MessageBox.Show("l");
    }
    public void ProgressForm1Method(double min, double max)
    {
        ts.Maximum = (int)max;
        ts.Value = (int)min;
        this.Update();
        Application.DoEvents();
        if (ts.Value == ts.Maximum)
        {
            mess("l");
            ts.Value = 0;
        }
        ts.Invalidate();
    }

这不

    public void mess(string s)
    {
        MessageBox.Show("l");
    }
    public void ProgressForm1Method(double min, double max)
    {
        ts.Maximum = (int)max;
        ts.Value = (int)min;
        this.Update();
        Application.DoEvents();
        if (ts.Value == ts.Maximum)
        {
            ts.Value = 0;
        }
        ts.Invalidate();
    }
4

1 回答 1

3

那是因为您在达到最大值时将值设置为 0。所以它给你的印象是它只填充了 90%。然而,在您的第一个示例中,您在ts.Value = 0.

ts.Value = 0在您单击关闭消息框之前不会触发,因此最多显示 100%

于 2013-07-22T16:55:59.660 回答