我是否能够在vb6中每次重复进度条?

时间:2013-09-20 18:30:42

标签: vb6 progress-bar

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

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

当我运行此代码时,进度条首先运行,但如果我导航到另一个表单然后返回(当然没有结束程序),它就不再运行了。所以有人可以建议一个解决方案。谢谢。

3 个答案:

答案 0 :(得分:1)

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

Private Sub UserForm_Initialize()

    ProgressBar1 = 0
    'Start Progress Bar

End Sub

答案 1 :(得分:0)

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

答案 2 :(得分: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