您开发的应用程序或许写得非常完整,您也很满意,但有时候却莫名其妙地出现了一点问题,在不该结束程序的时候,它被强迫结束了!可能使用者是按下了 Ctrl + Alt + Del,使用 Microsoft Windows 工作管理员关闭应用程序,或者强迫关机了!然而您的程序却没有考虑到这一点。
在正常情况下要结束一个表单,会经过三个事件 (当您使用 End 结束程序时是例外!),
顺序如下:
1、Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
2、Private Sub Form_Unload(Cancel As Integer)
3、Private Sub Form_Unload(Cancel As Integer)
在这三个事件中都允许您设定 Cancel=True 来避免表单被结束,但是它们是不分青红皂白的,唯一能让您分辨表单为什么被结束的,就是在 Form_QueryUnload 中的 UnloadMode 参数!
unloadmode 参数返回下列的值:
常数 值 描述
vbFormControlMenu 0 使用者从表单上的控制功能表中选取「关闭」指令。
vbFormCode 1 Unload 陈述式被程序代码呼叫。
vbAppWindows 2 目前 Microsoft Windows 作业环境任务结束。
vbAppTaskManager 3 Microsoft Windows 工作管理员正在关闭应用程序。
vbFormMDIForm 4 因为 MDI 表单正在关闭的缘故,MDI 子表单正在关闭。
vbFormOwner 5 表单因其拥有人关闭而关闭。
所以下次您就可以在 Form_QueryUnload 中利用 UnloadMode 参数来判断程序是否 要做什么特别处理!
VB部分相关文章推荐
※VB禁止使用 Alt-Tab 或 Ctrl-Alt-Del
※VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
※VB:设定 MsgBox 在若干时间之后若无回应则自动关闭
※VB:读取及设定NumLock/CapsLock/ScrollLock的值
※在vb中使用Iphlpapi.dll获取网络信息(下)
评论