2012-07-23 79 views
0

我有一個進度條,我想更新來自for循環的值 我怎麼能有相等的數據更新?從for循環更新進度欄

例如,如果循環的計數是10或者如果計數是1000 我該如何自動執行此操作?

僅供參考,進度條的最小值爲0,最大值爲100

回答

1

鴻溝不管你當前值(我們稱之爲X)由最大值,然後多個結果100。

double progress = (x/max) * 100; 

不過要小心,如果X和max是在那麼你最終會做整數除法而不是浮點除法。在這種情況下,您可能需要將其中的一個或兩個施放爲雙精度或浮點數。

+0

@Joey:是的,這就是我在答案中提到的原因。 – 2012-07-23 15:36:26

+0

爲了避免截斷,使用'100 * x/max'。 – 2012-07-23 16:22:42

2

您可以調整最大的進度條來搭配你的數據的大小,也可以按比例調整:

for (int i = 0; i < count; i++) { 
    // do something 
    progressBar1.Value = i * progressBar1.Maximum/count; 
    Application.DoEvents(); 
}