关于VB的问题

2025-04-14 18:28:08
推荐回答(3个)
回答1:

楼上那位的回答虽然很全面,不过缺少了错误处理


假如输入的是文字  字符 符号等,就会出错


另外,这种简单功能的程序,没必要做的如此复杂


这是我帮你改进后的程序,希望能帮到你


如果又不懂之处,可以继续向我追问,或私密我加好友方便沟通


若满意,请记得采纳,谢谢!



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

回答2:

程序已经修改调试完成,事先要把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

回答3:

你把简单问题搞得太复杂了。下面的代码比你的简单得多:

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函数的使用,它可以自动解决输入非数字字符的问题哦。