我在我的應用程序中有一個進度條,它應該做的是等於計數器值。進度條的最大值爲100,最小值爲0.程序運行時,它只會將小節增加很小的百分比。c#進度條無法正常工作
while (counter < numericUpDown1.Value)
{
timer1.Start();
client.Send(message);
counter++;
timer1.Stop();
progressBar1.Value = counter;
}
我在我的應用程序中有一個進度條,它應該做的是等於計數器值。進度條的最大值爲100,最小值爲0.程序運行時,它只會將小節增加很小的百分比。c#進度條無法正常工作
while (counter < numericUpDown1.Value)
{
timer1.Start();
client.Send(message);
counter++;
timer1.Stop();
progressBar1.Value = counter;
}
你已經設定最高爲100,所以請確保您的計數器達到100把這個和嘗試 progressBar1.Maximum = (int)numericUpDown1.Value;
得到它的工作,非常感謝 – FJam
也許您每次更改其值時都需要使用Application.DoEvents();
。
法比奧是正確的,如果numericdown1只有5,你的進度條只會增加到5,所以你需要做一些像(NumberDown1.Value/100)* 100來得到你應該增加你的進度條(Prior到while循環,不在裏面)。然後,我會創建一個委託來更新UI線程的值,如果它的winforms或者其WPF使用Dispatcher。
1.你確定NumericUpDown1中值不等於你得到了很小的比例? 2.它可能是你阻止UI線程(但因爲沒有上下文,它可能不是),這阻止了UI刷新 –