关于VB 6 中 DoEvents 导致主窗体关闭后程序无法退出的分析

1、VB中的窗体可以不用New直接通过窗体名称引用,因为应用程序级别,相当于模块全局变量自动有一个和窗体一样的变量名,实际是引用的这个全局的变量

2、窗体模块级的变量(也就是在窗体方法外的变量)生命周期跟窗体变量一致,不会因为 Form_Unload 而释放,Form_Unload 释放的仅是窗体界面资源

3、在窗体 UnLoad 之后,调用窗体任何已经释放的windows资源将会导致窗体重新 Load

4、DoEvents(一般在循环中 会导致程序在为执行完当前过程的情况下相应窗体事件,导致窗体 Unload ,过程继续执行导致 窗体资源无法被完全释放,程序无法退出。

5、解决办法:设置全局变量 gIsExit,用Sub main() 启动程序,程序启动后设置 gIsExit = False,当Form Unload 设置 gIsExit =true;DoEvents 执行完毕之后判断一下gIsExit ,if gIsExit then Unload me exit sub. 这样就可以正常退出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值