我已经在visual basic 6.0上编程了一个红绿灯,但我似乎无法将倒计时(10-0(编程为在每个灯下都处于无限循环,即在每个灯显示之前,它应该从10倒计时到0。这是我的代码
Private Sub Timer2_Timer()
If Label1. Caption = 0 Then
Timer2.Enabled = False
MsgBox ("go")
Else
Label1. Caption = Label1. Caption - 1
End If
End Sub
倒计时继续到1、-2、-3、-4等等,但我希望它在从10计数到0后再次从10开始。我如何在visual basic 6.0 上进行无休止的循环
代替:
Timer2.Enabled = False
做一些类似的事情:
Label1.Caption = 10
这样,计时器将永远运行,每次达到0时将重置为10。
此外,为了使代码更加健壮,您可以采用以下方法:
Private Const maxCounter As Integer = 10
Private counter As Integer
Private Sub form_Load()
counter = maxCounter
End Sub
Private Sub Timer2_Timer()
If counter = 0 Then
counter = maxCounter
MsgBox ("go")
Else
counter = counter - 1
End If
Label1.Caption = counter
End Sub
一个优点是,您的代码不依赖于在设计时如何设置Caption
属性。其次,它更具模块化和可理解性,因为功能逻辑(计数器的管理方式(和显示逻辑(字幕的设置方式(基本上是不同的。
此外,使用常数maxCounter
只是意味着你不必在不同的地方重复该值,而且它可以很容易地更改,而不会引入离散性。
显然,这是一个小程序,但这些都是很好的编程原则,可以思考哪些对大型程序有巨大的好处。