2012-04-10 91 views
1

我想弄清楚如何在狀態欄內加入進度條來顯示完成了多少處理。下面是我更新進度條的例子(不知道這是否正確)更新狀態欄內的進度欄

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    ToolStripProgressBar1.Value = ToolStripProgressBar1.Value + 2 
    If ToolStripProgressBar1.Value = 100 Then 
     ToolStripProgressBar1.Value = 0 
     ToolStripProgressBar1.Value = ToolStripProgressBar1.Value + 2 
     Timer1.Enabled = True 
    End If 
End Sub 

這是按鈕內的代碼。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1Run.Click 
    ToolStripStatusLabel1.Text = "Processing..." 
    Timer1.Enabled = True 

    'more code to be inserted here   

End Sub 

我不知道的是如何根據你有代碼量更新進度條,一旦處理完成,更新ToolStripStatusLabel1顯示「正在處理......完成!」。

+1

Seemsmore適合所以SO – Billjk 2012-04-10 14:12:10

+0

請問是什麼? – Muhnamana 2012-04-10 14:17:43

+0

我想其他網站可能是最適合我的問題。多謝你們。 – Muhnamana 2012-04-10 14:27:22

回答

1

通常,您可以使用PerformStep()方法來更新ProgressBar。此操作將通過在Step屬性中輸入的值增加ProgressBar的值。

該ProgessBar還有一個Maximum屬性來確定何時進度是100%。也就是說,如果最大值= 100,值= 100,則ProgressBar應顯示完整。

典型設置:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1Run.Click 
    ToolStripProgressBar1.Maximum = 100 
    ToolStripProgressBar1.Step = 2 
    ToolStripProgressBar1.Value = ToolStripProgressBar1.Minimum 
    ToolStripStatusLabel1.Text = "Processing..." 
    Timer1.Start() 
End Sub 

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick 
    ToolStripProgressBar1.PerformStep() 
    If ToolStripProgressBar1.Value >= ToolStripProgressBar1.Maximum Then 
    Timer1.Stop() 
    ToolStripStatusLabel1.Text = "Completed" 
    ToolStripProgressBar1.Value = ToolStripProgressBar1.Minimum 
    End If 
End Sub 

計時器通常是用於表示代碼進展奇數類型的測量。 ProgressBar通常與BackgroundWorker一起使用來顯示代碼的進度。

+0

謝謝。我會看看你的建議。 – Muhnamana 2012-04-10 14:55:30

0
If ToolStripProgressBar1.Value = 100 Then 

您確定您的價值將永遠達到「完全」100嗎? 也許

If ToolStripProgressBar1.Value >= 100 Then 

或者是100的一些magic number

編輯:這真的取決於你打算運行的代碼。進度條只是用戶需要根據特定進程設置的可視指示器。如果你只是想讓它顯示來顯示某些事情正在發生(類似於小時玻璃圖標),這應該起作用。

需要的地方將timer.enabled設置爲false並清除進度欄。

+0

嗯,我想幻數可能會更高或更低,取決於時間需要說多長時間,例如將1G文本文件從位置1複製到位置2或基於您正在處理的代碼量。 – Muhnamana 2012-04-10 14:19:51