进度条滞后?

时间:2014-07-14 19:52:59

标签: vb.net progress-bar

我只是在vb express 2008中乱搞,我决定使用进度条控件。我设置了两个标签和一个计时器,使进度条值上升,然后在达到极限时下降。然后重复这个。除了进度条对增量响应缓慢并且在增量周期结束时跳转到最大值这一事实外,它工作得很好。我将计时器设置为1毫秒间隔,这是我的代码,

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

    If Label2.Text = "100" Then
        number = number - 1
        Label3.Text = number
        ProgressBar1.Value = number
        ProgressBar1.Update()
    End If
    If Label3.Text = "0" Then
        number = number + 1
        Label2.Text = number
        ProgressBar1.Value = number
        ProgressBar1.Update()
    End If
End Sub

1 个答案:

答案 0 :(得分:1)

首先,我会将间隔设置为500,然后再将其设置为400,300,200,100等,直到达到所需的速度。

其次,假设 Label2 是您的 max 值, Label3 是您的 min 值,并且您希望进度条控件只是在最小值和最大值之间来回反弹,我会做这样的事情:

Const MAX_VALUE = 100
Const MIN_VALUE = 0

Dim currentValue = 0
Dim isIncrementing = True

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

    If currentValue = MAX_VALUE Then isIncrementing = False
    If currentValue = MIN_VALUE Then isIncrementing = True

    If isIncrementing Then currentValue += 1 Else currentValue -= 1

    ProgressBar1.Value = currentValue
    ProgressBar1.Update()

End Sub

由于我假设你的 Label2 Label3 是你的最小值/最大值,我还假设他们应该保持静态和永远不会改变,这就是为什么我不会在Tick事件中改变他们的价值观。如果您想要一个当前值标签,那么这很容易添加,并且会在ProgressBar1.Value同时更改。