楼上那位的回答虽然很全面,不过缺少了错误处理
假如输入的是文字 字符 符号等,就会出错
另外,这种简单功能的程序,没必要做的如此复杂
这是我帮你改进后的程序,希望能帮到你
如果又不懂之处,可以继续向我追问,或私密我加好友方便沟通
若满意,请记得采纳,谢谢!
Private Sub Timer1_Timer()
If Text1.Text > 0 Then '如果转换后的数值大于 0
Text1.Text = Text1.Text - 1 ' 减一
Else
Text1.Text = ""
Label1.Caption = "请输入一个数:"
Timer1.Enabled = False
End If
End Sub
Private Sub Command1_Click()
If Text1.Text <> "" Then '如果输入不为空
If Val(Text1.Text) > 0 Then '如果转换后的数值大于 0
Text1.Text = Val(Text1.Text) '转换数据为数值型
Timer1.Enabled = True '启动定时器,开始倒计时
Label1.Caption = "正在倒计时……"
Else
Label1.Caption = "请输入有效数值:"
End If
Else
Label1.Caption = "请输入一个数:"
End If
End Sub
程序已经修改调试完成,事先要把Timer1的Enabled属性修改为False:
Private Sub Timer1_Timer()
Text1.Text = Text1.Text - 1
If Text1.Text = 0 Then
Text1.Text = ""
Timer1.Enabled = False
Label1.Caption = "请输入一个数:"
End If
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 1000
If Text1.Text = "" Then
Timer1.Enabled = False
Else
Timer1.Enabled = True
End If
If Text1 <= "0" Then
Text1.Text = ""
Timer1.Enabled = False
Label1.Caption = "请输入一个数:"
Else
Label1.Caption = "开始计时……"
End If
End Sub
你把简单问题搞得太复杂了。下面的代码比你的简单得多:
Private Sub Timer1_Timer()
If Val(Text1.Text) <= 0 Then
Timer1.Enabled = False
Text1.Text = ""
Label1.Caption = "请输入一个数:"
Else
Text1.Text = Val(Text1.Text) - 1
End If
End Sub
Private Sub Command1_Click()
Label1.Caption = "开始计时……"
Timer1.Enabled = True
End sub
所有判断是否到时、数据是否有误等等的语句都放到Timer1_Timer中即可,Command1只需要把Timer1打开即可。此外,要留意Val函数的使用,它可以自动解决输入非数字字符的问题哦。