VB弹对话框会停止定时器,要怎么才能不停止?

2025-01-08 02:57:54
推荐回答(5个)
回答1:

建议你最好用自建窗体来代替弹出对话框,如果采用API函数或shell对象,会对你的Timer1造成冲突,不好控制。

回答2:

在IDE(编程)环境中msgbox是会让timer事件停下来的,编译后定时器是不会停下来的。
复制以下代码,编译成exe后测试:
Private Sub Form_Load()
MsgBox "123"
End Sub

Private Sub Timer1_Timer()
SendKeys "~"
Unload Me

End Sub

回答3:

这位兄才,看来你是没有注意观察,其实没有停,只是表面上他不动了,其实timer一直在运行的,你可以试试看,打个比方,提示框弹出,时间停在9秒上,当你取消提示框的时候,时间继续进行,但是他开始的时间绝对不是9秒

回答4:

Private Sub Form_Load()
Show
Set wsh = CreateObject("wscript.shell")
wsh.popup "123", 3, 321, 64
Unload Me
End Sub
不用api可以用popup的方法延迟 中间的3是3秒.可以自己改(单位:秒)

楼上的api我补充用法
messageboxex hwnd,文本,标题,显示类型,0

回答5:

试了这个代码,当我很快的关掉对话框后可以看到主窗体,再次运行等计时器时间到了以后再关掉对话框就看不到主窗体了,这说明计时器并没有停止,代码很正常,只是在对话框没被关掉的情况下系统进程里还有,这也很正常