2015-05-24 3 views
2

У меня есть progressBar и таймер, который его контролирует. Но по какой-то причине progressBar не обновляет, однако значение progressBar меняется, когда идет таймер, я сделал некоторую отладку и 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

У меня есть интервал 1000 мс, 1 секунда – ocespedes

+0

Какова стоимость максимума ProgressBar? – Muhammad

ответ

1

В свойствах Прогресс бар установить свойство STEP для того же размера, что и INCREMENT, который вы делаете (вы делаете + = 1 приращения)

И затем в вашем коде таймера, FORCE индикатор выполнения, чтобы отобразить изменения.

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

Смежные вопросы