0

每次加载该页面时,我可以让进度条重复它的加载过程吗?这是我的代码,

Private Sub Form_load()
Timer1.Interval = 50
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
PBcolor ProgressBar1, vbBlue, vbGreen
ProgressBar1 = ProgressBar1 + 1
If ProgressBar1.Value = 50 Then
ProgressBar1.Value = ProgressBar1 + 50
If ProgressBar1.Value >= ProgressBar1.Max Then
Form7.Hide
form8.Show
End If
End If
ProgressBar1.Refresh
End Sub

当我运行这段代码时,进度条首先运行,但如果我导航到另一个表单并返回(当然没有结束程序),它就不会再次运行。所以任何人都可以提出一个解决方案。谢谢你。

4

3 回答 3

1

在我的 VB6 应用程序中,我使用 UserForm_Initialize 或 UserForm_Initialize(取决于版本)。

Private Sub UserForm_Initialize()

    ProgressBar1 = 0
    'Start Progress Bar

End Sub
于 2013-09-24T16:24:35.293 回答
0

使用 Form_Activate() 或 Form_GotFocus() 事件重置进度条并重新开始加载

于 2013-09-23T13:25:48.483 回答
0

您的代码取决于进度条值小于最大值来执行任何操作。您可以做的最简单的事情就是在表单再次获得焦点时将值重置为最小值。Form_Activate事件适用于此。下面我格式化了您的原始示例并在您的代码之后添加了新事件。

Private Sub Form_load()

    Timer1.Interval = 50
    Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
    On Error Resume Next

    PBcolor ProgressBar1, vbBlue, vbGreen
    ProgressBar1 = ProgressBar1 + 1
    If ProgressBar1.Value = 50 Then
        ProgressBar1.Value = ProgressBar1 + 50
        If ProgressBar1.Value >= ProgressBar1.Max Then
            Form7.Hide
            form8.Show
        End If
    End If
    ProgressBar1.Refresh
End Sub

'Add this to the form with the progressbar
Private Sub Form_Activate()

    ProgressBar1.Value = ProgressBar1.Min

End Sub
于 2013-09-30T15:26:33.640 回答