C# 从for循环更新进度条

C# 从for循环更新进度条,c#,winforms,C#,Winforms,我有一个进度条,我想更新for循环的值 我怎样才能有相同的数据更新 循环计数为10或计数为1000时的示例 我如何实现自动化 仅供参考,进度条的最小值为0,最大值为100。您可以调整进度条的最大值以匹配数据大小,也可以相应缩放: for (int i = 0; i < count; i++) { // do something progressBar1.Value = i * progressBar1.Maximum / count; Application.DoEvents(

我有一个进度条,我想更新for循环的值 我怎样才能有相同的数据更新

循环计数为10或计数为1000时的示例 我如何实现自动化


仅供参考,进度条的最小值为0,最大值为100。您可以调整进度条的最大值以匹配数据大小,也可以相应缩放:

for (int i = 0; i < count; i++) {
  // do something
  progressBar1.Value = i * progressBar1.Maximum / count;
  Application.DoEvents();
}
for(int i=0;i
您可以调整进度条的最大值以匹配数据大小,也可以相应缩放:

for (int i = 0; i < count; i++) {
  // do something
  progressBar1.Value = i * progressBar1.Maximum / count;
  Application.DoEvents();
}
for(int i=0;i
将当前值(我们称之为x)除以最大值,然后将结果乘以100

double progress = (x / max) * 100;

但是要小心,如果x和max是整数,那么最终将执行整数除法而不是浮点除法。在这种情况下,您可能需要将一个或两个值转换为double或float。

将当前值(我们称之为x)除以最大值,然后将结果乘以100

double progress = (x / max) * 100;

但是要小心,如果x和max是整数,那么最终将执行整数除法而不是浮点除法。在这种情况下,你可能需要将一个或两个都转换为双精度或浮点。

@Joey:是的,这就是我在回答中提到的原因。要避免截断,请使用
100*x/max
。@Joey:是的,这就是我在回答中提到的原因。要避免截断,请使用
100*x/max