关于msgbox和inputbox的缺陷
vb吧
全部回复
仅看楼主
level 3
众所周知···VB6是单进程的
所以在使用msgbox和inputbox时候,程序会卡在那里,即便同一个项目内存在timer也不会运行。
经过查找,发现了不会卡程序的messagebox,但是inputbox还是没有找到代替的API。
有没有见多识广的大佬支个招
thank you in advance
2021年07月21日 09点07分 1
level 13
用Form做一个InputBox就可以解决,调用时Form*.Show就行
2021年07月21日 09点07分 2
这个可行,很好
2021年07月21日 10点07分
谢谢,已参考三楼提示解决疑惑。
2021年07月22日 00点07分
level 10
我记得在编译后运行exe,Timer就不会“被卡”。
在IDE下运行代码,那只能那样了…………
[汗]
2021年07月21日 15点07分 3
测试了一下,确实是这样。问题解决。谢谢
2021年07月22日 00点07分
@一梦过后已荒年 其实我觉得卡住Timer挺好的,不然Timer事件里面MsgBox的话就会看到不停弹窗[汗]
2021年07月23日 02点07分
@yjryym 你想多了……VB6的Timer事件是“不可重入”的,你要是在事件过程中去MsgBox,那么“当前Timer过程”又是被卡死的!但不会影响到其它的Timer事件(如果有多个Timer过程)
2021年07月24日 01点07分
@涐吢铱舊囿儚 所以Timer是一个新的线程?
2021年07月24日 10点07分
level 11
这个应该不算“缺陷”吧?
inputbox,是用户输入简单数据的,没有这个数据,下面的运行就没有意义了。
msgbox,除了单纯提示以外,更多的是让用户进行选择,在选择之前,就往下进行的话,到底进那个分支呢?
2021年07月22日 00点07分 4
timer,编辑模式下会停止。exe时候没影响
2021年07月22日 09点07分
1