更新状态栏内的进度栏
我想弄清楚如何在状态栏内加入进度条来显示完成了多少处理。下面是我更新进度条的例子(不知道这是否正确)更新状态栏内的进度栏
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
显示“正在处理......完成!”。
通常,您可以使用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一起使用来显示代码的进度。
谢谢。我会看看你的建议。 – Muhnamana 2012-04-10 14:55:30
If ToolStripProgressBar1.Value = 100 Then
您确定您的价值将永远达到“完全”100吗? 也许
If ToolStripProgressBar1.Value >= 100 Then
或者是100的一些magic number?
编辑:这真的取决于你打算运行的代码。进度条只是用户需要根据特定进程设置的可视指示器。如果你只是想让它显示来显示某些事情正在发生(类似于小时玻璃图标),这应该起作用。
需要的地方将timer.enabled设置为false并清除进度栏。
嗯,我想幻数可能会更高或更低,取决于时间需要说多长时间,例如将1G文本文件从位置1复制到位置2或基于您正在处理的代码量。 – Muhnamana 2012-04-10 14:19:51
Seemsmore适合所以SO – Billjk 2012-04-10 14:12:10
请问是什么? – Muhnamana 2012-04-10 14:17:43
我想其他网站可能是最适合我的问题。多谢你们。 – Muhnamana 2012-04-10 14:27:22