Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ProgressBar2.Value = 100 Then
ProgressBar2.Value = ProgressBar2.Maximum()
MsgBox("Posting Completed!")
ProgressBar2.Enabled = False
Else
Do
ProgressBar2.Value += 5
Loop
End If
End Sub
我正在努力弄清楚问题是什么,但直到现在我仍然无法找到解决方案,直到我运行它没有错误,它给了我这个错误
'105'的值对'Value'无效。 '价值'应介于'最小'和'最大'之间。 参数名称:值
我已经设置了
ProgressBar2.Minimum = 0
ProgressBar2.Maximum = 100
请帮帮我:(
答案 0 :(得分:4)
上面的代码出了点问题。
循环
Do
ProgressBar2.Value += 5
Loop
永远不会停止,当它达到100时,它将超过最大值 不,当你进入这个循环时,不会执行方法入口处的测试
你应该只增加一次然后退出循环并等待下一个Timer滴答再次递增
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ProgressBar2.Value + 5 >= ProgressBar2.Maximum Then
ProgressBar2.Value = ProgressBar2.Maximum
MsgBox("Posting Completed!")
Timer1.Stop()
Else
ProgressBar2.Value += 5
End If
End Sub
此外,当你达到最大值时,你应该只是停止Timer1而不是禁用ProgressBar2
答案 1 :(得分:0)
因为您将值从100增加到105,所以它在If语句中失败,因为您没有检查它是否大于或等于>=
。
此外,你可以摆脱循环,因为它没有退出。