2013-07-22 186 views
0

我想在c#中做一個進度條,但我有麻煩更新它達到90%,並重置。但如果我顯示一個消息框,那麼它會填滿。 此代碼填充它c#進度條不更新

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(); 
    } 
+5

那是因爲你重置值恢復爲0,一旦它擊中最高。使用消息框將其顯示爲100,然後將其重置爲0 –

+3

簡單的調試或者只是讀取代碼應該使這非常清楚... – chancea

+0

@ The8thBit - 提交該答案作爲答案。 – Logarr

回答

3

那是因爲你的值設置爲0,它擊中最高的時刻。所以它給你的印象只有90%。而在第一個示例中,您在ts.Value = 0之前顯示消息框。

ts.Value = 0不火,直到您單擊關閉消息框,因此它顯示高達100%