【问题标题】:Progress bar incorrect sum value进度条总和值不正确
【发布时间】:2019-02-13 08:53:10
【问题描述】:

我有一个简单的进度条代码

 Dim delimiter As Decimal = 0.0
    If ListOfUsers.Any() Then
        delimiter = 100.0 / ListOfUsers.Count
    End If
For Each link As String In ListOfUsers
                counter += 1
                Dim pValue As Decimal = ProgressBar1.Value
                pValue = pValue + delimiter
                ProgressBar1.BeginInvoke(Sub() ProgressBar1.Value = pValue)
Next
 End If

由于某种原因,它的总和不正确。假设我们有 ListOfUsers.Count = 3 分隔符将获得值 100 / 3 = 33.33 这是正确的。现在,当它求和时,它得到66.33 而不是66.66

我尝试使用 Double 但结果是一样的。这可能很简单,我在这里缺少什么?

【问题讨论】:

  • 您不能调用Dim pValue As Decimal = ProgressBar1.Value,除非您通过.Invoke 调用它(假设此代码在后台线程中运行)。

标签: vb.net progress-bar


【解决方案1】:

进度条值是一个整数,例如,您将该值设置为 33.33,但是当您从进度条中读取该值时,它返回 33,因此通过将 33 与 33.33 相加,您将得到 66.33。

查看 Progress Bar 类,Value 属性是一个 int 公共属性值作为整数

【讨论】:

    【解决方案2】:

    尝试将“Dim pValue As Decimal = ProgressBar1.Value”放在 foreach 循环之外。

    就在循环之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2017-04-15
      • 2016-08-14
      • 2018-10-27
      • 1970-01-01
      相关资源
      最近更新 更多