Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 添加进度条以显示已加载表单的百分比_Vb.net_Vb.net 2010 - Fatal编程技术网

Vb.net 添加进度条以显示已加载表单的百分比

Vb.net 添加进度条以显示已加载表单的百分比,vb.net,vb.net-2010,Vb.net,Vb.net 2010,我有一个表单在form_load事件上有特定的代码行,因此需要一些时间才能显示出来。我想添加一个进度条来显示表单已加载的百分比。我怎么能这样做 简而言之:-与浏览网页时一样,web浏览器中显示的进度表示页面的值已加载。我想在vb.net中这样做 如何执行此操作。您需要将长时间运行的代码移动到表单的。如图所示事件处理程序中 我建议在表单中添加一个StatusStrip,并在其中添加一个ToolStripProgressBar。我在自己编写的一个程序中完成了这项工作,并在上面使用了以下代码 这一切都

我有一个表单在form_load事件上有特定的代码行,因此需要一些时间才能显示出来。我想添加一个进度条来显示表单已加载的百分比。我怎么能这样做

简而言之:-与浏览网页时一样,web浏览器中显示的进度表示页面的值已加载。我想在vb.net中这样做


如何执行此操作。

您需要将长时间运行的代码移动到表单的
。如图所示
事件处理程序中

我建议在表单中添加一个
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