Vb.net 添加进度条以显示已加载表单的百分比
我有一个表单在form_load事件上有特定的代码行,因此需要一些时间才能显示出来。我想添加一个进度条来显示表单已加载的百分比。我怎么能这样做 简而言之:-与浏览网页时一样,web浏览器中显示的进度表示页面的值已加载。我想在vb.net中这样做Vb.net 添加进度条以显示已加载表单的百分比,vb.net,vb.net-2010,Vb.net,Vb.net 2010,我有一个表单在form_load事件上有特定的代码行,因此需要一些时间才能显示出来。我想添加一个进度条来显示表单已加载的百分比。我怎么能这样做 简而言之:-与浏览网页时一样,web浏览器中显示的进度表示页面的值已加载。我想在vb.net中这样做 如何执行此操作。您需要将长时间运行的代码移动到表单的。如图所示事件处理程序中 我建议在表单中添加一个StatusStrip,并在其中添加一个ToolStripProgressBar。我在自己编写的一个程序中完成了这项工作,并在上面使用了以下代码 这一切都
如何执行此操作。您需要将长时间运行的代码移动到表单的
。如图所示事件处理程序中
我建议在表单中添加一个StatusStrip
,并在其中添加一个ToolStripProgressBar
。我在自己编写的一个程序中完成了这项工作,并在上面使用了以下代码
这一切都是不言自明的:-)
“”
''设置ToolStripProgressBar的最小值和最大值并显示
'''
''最小值
''最大值
要在ToolStripLabel中显示的“”文本
私有子集合和ShowProgressBar(最小值为整数,最大值为整数,labeltext为字符串)
ToolStripStatusLabel1.Text=labeltext
ToolStripProgressBar1。最小值=最小值
ToolStripProgressBar1.最大值=最大值+5
ToolStripProgressBar1.Value=1
ToolStripProgressBar1.Visible=True
StatusStrip1.Update()
端接头
'''
''隐藏ToolStripProgressBar
'''
私有子HideProgressBar()
ToolStripStatusLabel1.Text=“”
ToolStripProgressBar1.Visible=False
StatusStrip1.Update()
端接头
私有委托子incprogressbarDelegate()
私有子增量ProgressBar()
如果我需要的话
Dim d作为新的incprogressbarDelegate(IncrementProgressBar的地址)
调用(d,新对象())
其他的
Me.ToolStripProgressBar1.Value+=1
StatusStrip1.Update()
如果结束
端接头
私有委托子集合ProgressBarDelegate(i为整数)
私有子集合ProgressBarValue(i为整数)
如果我需要的话
尺寸d作为新的SetProgressBarDelegate(SetProgressBarValue的地址)
调用(d,新对象(){i})
其他的
Me.ToolStripProgressBar1.Value=i
如果结束
端接头
如果代码在加载
事件处理程序中,则表单尚未显示,因此您计划在哪里显示进度条
?web浏览器通过使用线程来完成此操作,这也是您必须做的。BackgroundWorker让事情变得非常直截了当。
''' <summary>
''' Sets minimum and maximum values for ToolStripProgressBar and shows it
''' </summary>
''' <param name="min">Minimum Value</param>
''' <param name="max">Maximum Value</param>
''' <param name="labeltext">Text to show in ToolStripLabel</param>
Private Sub SetAndShowProgressBar(min As Integer, max As Integer, labeltext As String)
ToolStripStatusLabel1.Text = labeltext
ToolStripProgressBar1.Minimum = min
ToolStripProgressBar1.Maximum = max + 5
ToolStripProgressBar1.Value = 1
ToolStripProgressBar1.Visible = True
StatusStrip1.Update()
End Sub
''' <summary>
''' Hides ToolStripProgressBar
''' </summary>
Private Sub HideProgressBar()
ToolStripStatusLabel1.Text = ""
ToolStripProgressBar1.Visible = False
StatusStrip1.Update()
End Sub
Private Delegate Sub incprogressbarDelegate()
Private Sub IncrementProgressBar()
If Me.InvokeRequired Then
Dim d As New incprogressbarDelegate(AddressOf IncrementProgressBar)
Me.Invoke(d, New Object())
Else
Me.ToolStripProgressBar1.Value += 1
StatusStrip1.Update()
End If
End Sub
Private Delegate Sub SetProgressBarDelegate(i As Integer)
Private Sub SetProgressBarValue(i As Integer)
If Me.InvokeRequired Then
Dim d As New SetProgressBarDelegate(AddressOf SetProgressBarValue)
Me.Invoke(d, New Object() {i})
Else
Me.ToolStripProgressBar1.Value = i
End If
End Sub