【问题标题】:ProgressBar not updating VB.NETProgressBar 不更新 VB.NET
【发布时间】:2015-08-05 20:29:06
【问题描述】:

我有一个进度条和一个控制它的计时器。但是由于某种原因progressBar没有更新但是progressBar的值随着计时器的变化而变化,我做了一些调试并且progressBar UI似乎没有更新,因为值和计时器工作正常。这是我的代码

     Private Sub timerReserve_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerReserve.Tick
         If progressBar1.Value = progressBar1.Maximum Then
             timerReserve.Stop()
             ....(database updates)
         Else
             countdown +=1 
             progressBar1.Value += 1
         End If
     End Sub

我不知道发生了什么,它应该可以正常工作....

提前致谢

【问题讨论】:

  • 这可能是因为您的 Timer 运行速度快于 UI 刷新速度。你的定时器的时间间隔是多少?
  • 我有1000ms的间隔,1秒
  • ProgressBar的Maximum值是多少?

标签: vb.net progress-bar


【解决方案1】:

在您的进度条属性中,将 STEP 属性设置为与您正在制作的 INCREMENT 相同的大小(您正在制作 +=1 增量)

然后在您的计时器代码中,强制进度条显示更改。

Private Sub timerReserve_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerReserve.Tick
  If progressBar1.Value = progressBar1.Maximum Then
    timerReserve.Stop()
    ....(database updates)
  Else
    countdown +=1 
    progressBar1.Value += 1
    ' ** FORCE UPDATE **
    progressBar1.PerformStep()
  End If
End Sub

【讨论】:

  • 增量很好,在这种情况下,假设aa+=1 等价于 a = a + 1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多