2012-07-23 75 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(); 
}