您可以使用委托来完成这项工作。您的进度条与您执行功能 1、2 和 3 的形式不同,因此您应该尝试在进度条形式中执行。调用 form.Show 后,表单具有焦点,函数 1,2 和 3 在表单关闭之前不会运行。
在您的进度条表单中(假设它有一个标签和一个进度条控件)放置一个将更新您的进度条的函数:
Public Sub UpdateProgress(intProgress As Integer, Optional strMessage As String)
If Not IsMissing(strMessage) Then
lbl_Progress.Caption = strMessage
End If
pb_Progress.Value = intProgress
Call Me.Repaint
End Sub
然后,您可以从进度条表单中执行您的功能。您可以通过将调用它的表单设置为对象来公开您的函数或仅将函数 1,2 和 3 存储在进度条表单中来做到这一点。
Sub RunFunctions()
UpdateProgress 0, "Starting functions"
UpdateProgress 10, "Begin function1"
Call function1
UpdateProgress 30, "Finished function1"
UpdateProgress 50, "Begin function2"
Call function2
UpdateProgress 70, "Finished function2"
UpdateProgress 90, "Begin function3"
Call function3
UpdateProgress 100, "Finished function3"
UpdateProgress 100, "Finished All Functions"
End Sub
如果您需要帮助进行设置,请向我提问。