怎样用VB设计一个倒计时程序?

设计一个计时器,能够设置倒计时的时间,并进行倒计时,只需要一个命令按钮,一个label控件,时间到了用msgbox语句输出。
时间的格式为00:00:00,要用timer控件。

第1个回答  2006-09-23
一个窗体上 加入一个命令按钮,一个label控件 还要一个timer控件
在窗体代码中加入如下代码
Dim nTime As Integer

Private Sub Command1_Click()
'设定到时时间
nTime = Val(InputBox("设定时间"))
Label1.Caption = "离到时还有" & nTime & "秒"
'开计时器
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
If (nTime <> 0) Then
nTime = nTime - 1
Label1.Caption = "离到时还有" & nTime & "秒"
Else
MsgBox ("到时了")
'停计时器
Timer1.Interval = 0
End If

End Sub

最简单的代码了
第2个回答  2006-09-23
楼主说了,只要command和label控件,看样子timer控件是不能用了,但不知道API能不能用!?
如果不用API,下面的代码可以参考一下:
一个窗体,一个Command,一个Label
Private Sub Command1_CLick()
Dim temptime as long
dim i
for i=10 to 0 step -1 '设定时10秒。
temptime = timer
while timer-temptime<=1
doevents
wend
label1.value="倒计时还有" & str(i) & "秒!"
next
msgbox "时间到!"
End Sub
第3个回答  2006-09-23
PAL神仙的方法是可以的,不过插入的空循环会使CPU飙至100%直至循环结束,加入Timer控件可以解决这一问题,只要你不坚持不使用Timer的话....
第4个回答  2006-09-23
设置的倒计时时间是怎么样的格式?
X天X分X秒?还是X秒?
以下以X秒为例(天数等可以转换为秒数再倒计时),添加Text1以输入倒计时秒数,添加Timer1:

Dim starttime As Single
Private Sub Command1_Click()
If Text1.Text <> "" And IsNumeric(Text1) Then
starttime = Timer
Timer1.Interval = 1000
Label1.Caption = Val(Text1.Text)
End If
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Val(Text1.Text) - (Timer - starttime)
If (Timer - starttime) > Val(Text1.Text) - 1 Then
l = MsgBox("时间到了!")
If l = 1 Then End
End If
End Sub本回答被提问者采纳