vb中计时器的编写?

来源:百度知道 编辑:UC知道 时间:2024/06/28 08:48:30
窗体中有三个文本框(从左至右是text1、text2、text3)、两个命令按钮(从左至右是Command1、Command2)和一个计时器。程序的功能是:单击“开始计数”按钮,就开始计数,每隔一秒,文本框中的数加1,其中文本框text1计数时间为1秒;计时完毕,text2开始计数,其计数时间为2秒;text2计数完毕,text3开始计数,其计数时间为3秒。text3计数完毕,text1又开始计数,进入下一个循环。单击“停止计数”按钮,则停止计数。
将timer的enable属性设置为false,interval属性设置为1000并编写如下代码:
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub

Private Sub Command2_Click()
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
Dim s As Integer
Dim s1 As Integer
Dim s2 As Integer
Dim s3 As Integer
s = s + 1
If s > 6 Then s = 0
Select Case s
Case 1
s1 = s1 + 1
Case 2, 3
s2 = s2 + 1
Case 4, 5, 6
s3 = s3 + 1
End Select
Text1.Text = s1
Text2.Text = s2
Text3.Text = s3
End Sub
程序不能正确执行,请问是哪里出错了。

一楼说的对,也可以这样改:

将 Timer1_Timer 事件中的 Dim 全部改成 Static

s1,s2,s3是局部变量,每次timer事件都会清零。所以将
Dim s As Integer
Dim s1 As Integer
Dim s2 As Integer
Dim s3 As Integer
放在程序最开头(即不在任何一个过程里)

如果每个循环中,text文本不累加,把If s > 6 Then s = 0
改成
If s > 6 Then
s = 0
s1=0
s2=0
s3=0
end if
即可