2015-05-24 95 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