2017-04-06 121 views
0

我在窗體上有一個進度條,我希望它每次在循環結束時更新。C#進度條不更新

progressBar1.Value += (progressBar1.Maximum/4); 
if (progressBar1.Value == progressBar1.Maximum) 
{ 
    MessageBox.Show("Done!"); 
} 

我有這個在我的循環結束,但它沒有更新的循環,只是作爲一個堅實的灰色酒吧...任何提示?由於

+0

可以提供其他的代碼? –

+0

您能否提供progressBar的整個聲明? – jace

+0

您應該在上面放置*相關的*代碼,而不是註釋中的整個程序的鏈接。我們只需要一個簡短的代碼示例來演示您遇到的問題。 –

回答

1

這是不是一個真正的答案,後來我就刪除它,但這裏是最小的例子,可重複的代碼

刪除一個進度條,並在窗體上按鈕,然後複製到按鈕此點擊事件。當您單擊按鈕,進度條顯示進度,然後一個消息框應該讓你知道當它這樣做,而是我發現了以下異常:

類型的未處理的異常「系統。 ArgumentOutOfRangeException」發生在System.Windows.Forms.dll中

private void button1_Click(object sender, EventArgs e) 
{ 
    progressBar1.Maximum = 999; 

    while (progressBar1.Value < progressBar1.Maximum) 
    { 
     Thread.Sleep(500); 
     progressBar1.Value += (progressBar1.Maximum/4); 
    } 

    MessageBox.Show("Done!"); 
}