2015-05-24 98 views
2

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

 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 

我不知道是怎么回事,它应该工作的优良....提前

感谢

+0

这可能是因为你的计时器比用户界面刷新的速度快。定时器的间隔是多少? – DDPWNAGE

+0

我有1000ms的间隔,1秒 – ocespedes

+0

ProgressBar的最大值是多少? – Muhammad

回答

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 
+0

增量很好,在这种情况下,让我们说'a'。 'a + = 1'相当于'a = a + 1' – ocespedes