vb timer不会自动运行

我在使用timer时输入了:(用来做倒计时)PrivateSubCommand1_Click()Timer1.Interval=1000Timer1.Enabled=Tr... 我在使用timer时输入了:(用来做倒计时)
Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Label2.Caption = 5 - t
t = t + 1
If t = 5 Then
MsgBox ("Time Over")
Else
End If
End Sub
结果timer运行了一次就不再运行了,这是为什么?
展开
 我来答
自诩英才吾为王
2014-08-21 · 超过19用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:32万
展开全部

t没有赋给初值啊!

首先

Dim t As Integer

然后在按钮点击事件里将

t=0

即可解决~!

不用管我的label2,只是监控一下t。

新雪无痕
2014-08-21 · TA获得超过343个赞
知道小有建树答主
回答量:466
采纳率:68%
帮助的人:154万
展开全部
你这里面有好多问题
1在Form_Load里加timer1.enabled=true 就可以启动的时候自动运行了.

2你说的运行一次之后不再运行应该是因为你没有在if语句里让timer1.enabled=false 所以timer会一直运行.即使t=5之后.

3你没有在command1.click里面给t赋初值,这样你运行第二次的时候t不会从1重新开始 所以也不会弹出msg.
追问

我的状况是timer只运行了一次

就是在label中显示了5后数字就不动了......

追答
把if里面的Else跟end if删了试试.if只写一行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szqaly
2014-08-21 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1536万
展开全部
你怎么知道只运行一次,我看是t出了问题,如果t不是在声明区定义的变量的话,就应该在事件过程中定义成静态变量:
不对,把t在声明区定义,然后在按钮事件中重初为0。
追问

就是在label中显示了5后数字就不动了......所以我说timer只运行了一次

追答
不可能,除非t 的值始终是0,才会在标签上显示5不变。在声明区没定义变量t就会这样了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兔兔爱萝卜521
2014-08-21 · TA获得超过273个赞
知道小有建树答主
回答量:503
采纳率:50%
帮助的人:154万
展开全部
我理解的是你的意思 是你想倒计时结束之后 从5开始再开始一次倒计时是吗?
Public Class Form1
Dim t = 0
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

Label1.Text = 5 - t
t = t + 1
If t = 5 Then
t = 0
MsgBox("Time Over")
End If
End Sub
End Class
用vs写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式