当单击窗体右上角的红色X按钮(我不知道它正式称为什么)时,我希望在我的MDI窗体中激活一段代码,以便程序可以正常关闭。
在窗体中,当发生这种情况时会调用哪个方法?
当单击窗体右上角的红色X按钮(我不知道它正式称为什么)时,我希望在我的MDI窗体中激活一段代码,以便程序可以正常关闭。
在窗体中,当发生这种情况时会调用哪个方法?
当调用 Form_QueryUnload
函数时,如果您已经指定了一个 MDI 应用程序,则会调用确切的事件:
Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)
在该函数中,如果将cancel
设置为非零值,则会阻止应用程序退出。换句话说,QueryUnload
是一种查询表单是否应卸载的方式。第二个参数 unloadmode
提供了有关如何触发此卸载的信息。
在MDI应用程序中使用Unload和QueryUnload事件
在MDI应用程序中,当您尝试卸载主MDI窗体时,VB会首先卸载所有打开的子窗体。这意味着各种Unload和QueryUnload事件在MDI应用程序中具有特殊的时间关系。当尝试卸载主MDI窗体时,Unload和QueryUnload事件的顺序如下:
1. MDI窗体的
QueryUnload
事件
2. 每个打开的子窗体的QueryUnload
事件
3. 每个子窗体的Unload
事件
4. MDI窗体的Unload
事件如果在任何这些事件过程中将Cancel设置为True,则整个卸载过程将停止。如果在任何QueryUnload事件过程中停止卸载,则不会触发任何Unload事件,并且不会卸载任何窗体。如果在任何Unload事件过程中停止卸载,则只有在取消发生之前已经发生了Unload事件的窗体才会卸载。
Form_Load
?我怀疑。无论如何,像Form_Load
中添加一些代码,比如MsgBox
并放置一个断点(F9
插入断点)。如果调试器在您的断点上停止,请按Ctrl-L
并检查您的调用堆栈。 - user184968