2013-06-22 194 views
0

我在我的應用程序中有一個進度條,它應該做的是等於計數器值。進度條的最大值爲100,最小值爲0.程序運行時,它只會將小節增加很小的百分比。c#進度條無法正常工作

while (counter < numericUpDown1.Value) 
{ 
    timer1.Start(); 
    client.Send(message); 
    counter++; 
    timer1.Stop(); 
    progressBar1.Value = counter; 
} 
+0

1.你確定NumericUpDown1中值不等於你得到了很小的比例? 2.它可能是你阻止UI線程(但因爲沒有上下文,它可能不是),這阻止了UI刷新 –

回答

2

你已經設定最高爲100,所以請確保您的計數器達到100把這個和嘗試 progressBar1.Maximum = (int)numericUpDown1.Value;

+0

得到它的工作,非常感謝 – FJam

0

也許您每次更改其值時都需要使用Application.DoEvents();

0

法比奧是正確的,如果numericdown1只有5,你的進度條只會增加到5,所以你需要做一些像(NumberDown1.Value/100)* 100來得到你應該增加你的進度條(Prior到while循環,不在裏面)。然後,我會創建一個委託來更新UI線程的值,如果它的winforms或者其WPF使用Dispatcher。