您的位置:首页 > 编程语言 > VB

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

2010-07-10 14:28 295 查看
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. 这样就可以正常退出了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: