我正在尝试弄清楚如何在状态栏中合并进度条以显示完成了多少处理。下面是我更新进度条的示例(不确定这是否正确)
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
以显示“正在处理...完成!”。< / p>
答案 0 :(得分:1)
通常,您将使用PerformStep()
方法更新ProgressBar。此操作将使ProgressBar的值增加Step
属性中输入的值。
ProgessBar还有Maximum
属性,用于确定进度何时达到100%。也就是说,如果Maximum = 100且Value = 100,则ProgressBar应显示为full。
典型设置:
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一起使用,以显示代码的进度。
答案 1 :(得分:0)
If ToolStripProgressBar1.Value = 100 Then
你确定你的价值会达到“完全”100吗? 也许
If ToolStripProgressBar1.Value >= 100 Then
或者是100个magic number?
编辑:这实际上取决于您打算运行的代码。进度条只是您必须根据特定进程设置的用户的可视指示器。如果你只是希望它显示以显示某些事情发生(类似于小时玻璃图标),这应该工作。
您需要将timer.enabled设置为false并清理进度条。