怎么让timer执行一次就停止
vb吧
全部回复
仅看楼主
level 3
虞夙🌿 楼主
如题,设置了timer的运行事件是弹出messagebox,然后就间隔着一直一直弹,怎么让它只弹一次就停下呀。
2021年04月02日 02点04分 1
level 3
虞夙🌿 楼主
dd
2021年04月02日 02点04分 2
level 3
虞夙🌿 楼主
救救孩子
2021年04月02日 02点04分 3
level 15
为什么要用定时器?一次性代码建议不要用定时器
如果确实希望定时器只触发一次,那就在代码中写上关闭定时器的代码(VB6是将Enabled属性设置成False,这个版本不清楚是不是这样也可以)
2021年04月02日 03点04分 4
嘛,没仔细看你的代码,你明明自己都写了Enabled属性的代码了,所以这个版本是可以这样用的
2021年04月02日 03点04分
因为我们老师要求我们用[泪],我在timer tick事件的最后写了timer.enabled=FALSE,还是还没有用,它停不下来[喝酒]
2021年04月02日 03点04分
@虞夙🌿 你弹MsgBox写在Tick事件里面,而Enabled=False却写在Timer1_Timer,能有用才怪。VB.NET的Timer控件只有Tick事件,没有Timer事件。
2021年04月06日 02点04分
@yjryym 我不知道你从哪里看出来的楼主在“Timer1_Timer”里写代码了,楼主发的图都是正确的Tick事件过程
2021年04月06日 08点04分
level 11
同意四楼大侠的观点。
①如果执行一次就不要用timer,timer就是反复执行的。
②如果因为要在若干时间后执行,可以用sleep
③如果你非要这么做,那么就是timer事件的最后将timer控件的可用性设为假。
2021年04月02日 03点04分 5
可是我在最后设置了可用性为假,还是没有用[熊-大哭]
2021年04月02日 03点04分
@虞夙🌿 一条路暂时不好走,你换一条路呀
2021年04月02日 05点04分
他是VB.NET,.NET和VB6不一样,.NET是Tick事件,VB6才是Timer里面,他在.NET里面写Timer1_Timer来执行Enabled=False,能有用才怪。
2021年04月06日 02点04分
@yjryym
2021年04月06日 02点04分
level 3
虞夙🌿 楼主
我觉得我都逻辑没有错,为啥就是停不下来呢[不高兴]
2021年04月02日 03点04分 6
这个应该可以停止才对,不过你那句i=0是多余的
2021年04月02日 03点04分
我一直用的vb6.你这个具体是怎么弄不太清楚,但你为啥一定非要用timer呢?
2021年04月02日 05点04分
如果出现“不能停止”的问题,确实有点“不科学”。不过楼主可以尝试把Timer1.Enabled=false 写在第1句。不过前面两位大侠说的“一次性代码建议不要用定时器”,那倒是未必。[滑稽]有些特定的场景下,采用“定时器执行一次”是最佳效果。
2021年04月02日 12点04分
@涐吢铱舊囿儚 自动关机么?
2021年04月03日 06点04分
level 5
我看没有问题- - 然后我照着抄了一遍,发现没问题啊
2021年04月02日 14点04分 7
嚯,vb.net
2021年04月03日 06点04分
level 3
虞夙🌿 楼主
我只是一个vb初学者,楼里大佬说的我听不太明白阿巴阿巴[小乖]不过今天我调了一下messagebox显示的顺序,现在成功了,虽然我自己还是不知道是啥原理[小乖]还是谢谢各位大佬给我解答问题
2021年04月07日 02点04分 8
MessageBox是阻塞函数,会等到消息框关闭后才会返回(然后才会执行你后面的Timer1.Enabled = False)
2021年04月08日 02点04分
1