【问题标题】:Update progress bar from for loop从 for 循环更新进度条
【发布时间】:2012-07-23 22:49:44
【问题描述】:

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

循环计数为 10 或计数为 1000 的示例 我该如何自动化呢?

仅供参考,进度条的最小值为0,最大值为100

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    您可以调整进度条的最大值以匹配您的数据大小,或者您可以相应地缩放:

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

    【讨论】:

      【解决方案2】:

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

      double progress = (x / max) * 100;
      

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

      【讨论】:

      • @Joey:是的,这就是我在回答中提到这一点的原因。
      • 为了避免截断使用100 * x / max
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      相关资源
      最近更新 更多