2012-04-10 84 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