2014-10-08 64 views
1

我嘗試了一些使用進度條,但沒有正確顯示彈出窗口。當我使用msgbox時,它會出現100次,當我用form2替換msgbox時,它會一直顯示我甚至關閉它。在VB.NET中完成進度條顯示時多次顯示消息框

Public Class Form1 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     Timer1.Start() 
    End Sub 

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
     ProgressBar1.Increment(1) 
     If ProgressBar1.Value = ProgressBar1.Maximum Then 
      MsgBox("Done") 
     End If 
    End Sub 
End Class 

回答

1

如果你想顯示消息僅一次,然後在消息框中

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 

    ProgressBar1.Increment(1) 
    If ProgressBar1.Value = ProgressBar1.Maximum Then 
     Timer1.Stop() 
     MsgBox("Done") 
    End If 
End Sub 
+0

感謝。現在工作。 – user3438681 2014-10-08 10:59:25

+0

不要忘記標記爲適合您的解決方案的答案。它可以幫助其他面臨同樣問題的人。 – prem 2014-10-08 11:49:35

0

這是因爲你不是disableStop定時器之前停止計時器。當ProgressBar1.Value達到最大值時,消息框將顯示爲"Done",但定時器仍在執行,因此條件爲If ProgressBar1.Value = ProgressBar1.Maximum Then爲真,您將收到定時器被禁用之前的消息。因此如果條件爲真,您需要禁用定時器。

If ProgressBar1.Value = ProgressBar1.Maximum Then 
    Timer1.Enabled = False 
    MsgBox("Done") 
End If 

,或者您可以使用Timer1.Stop()