QueryUnLoad->Unload->Terminate

来源:互联网 发布:清北学霸 知乎 编辑:程序博客网 时间:2024/06/05 07:05

Form_QueryUnload 

是在关闭窗体或应用程序前触发。当一个MDIForm对象关闭时,QueryUnload 事件先在MDI窗体发生,然后在所有MDI子窗体中发生。如果没有窗体取消QueryUnload 事件,该Unload事件首先发生在所有其他窗体中,然后再发生在MDI窗体中。当一个子窗体或一个Form对象关闭时,在那个窗体中的QueryUnload 事件先于该窗体的Unload事件发生。


语法

Private Sub Form_QueryUnload(cancel As Integer, unloadmode As Integer)

Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)

部分描述

Cancel一个整数,将此参数设定为除0以外的任何值,可在所有已装载的窗体中停止QueryUnload 事件,并阻止该窗体和应用程序的关闭。

Unload一个值或一个常数,如返回值中所描述的,它指示引起QueryUnload 事件的原因。


说明
此事件的典型用法是在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。

当一个应用程序关闭时,可使用 QueryUnload 或 Unload 事件过程将 Cancel 属性设置为 True 来阻止关闭过程。但是,QueryUnload 事件是在任一个卸载之前在所有窗体中发生,而 Unload 是在每个窗体卸载时发生。






Form_Unload

是在关闭窗体后触发

当窗体从屏幕上删除时发生。当那个窗体被重新加载时,它的所有控件的内容均被重新初始化。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。

语法

Private Sub object_Unload(cancel As Integer)

部分 描述  
Object 一个对象表达式,其值是“应用于”列表中的一个对象。  
Cancel 一个整数,用来确定窗体是否从屏幕删除。如果 cancel 为 0,则窗体被删除。将 cancel 设置为任何一个非零的值可防止窗体被删除。  


说明
将Cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。

在窗体被卸载时,可用一个 Unload 事件过程来确认窗体是否应被卸载或用来指定想要发生的操作。也可在其中包括任何在关闭该窗体时也许需要的验证代码或将其中的数据储存到一个文件中。

QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生。

使用 Unload 语句或在一个窗体的“控件”菜单上选择“关闭”命令,用“任务窗口”列表上的“结束任务”按钮退出应用程序,在当前窗体为其一个子窗体的情况下关闭该 MDI 窗体,或当应用程序正在运行的时候退出 Microsoft Windows 操作环境等情况都可引发 Unload 事件。

如果点击窗体的叉号关闭,则unloadmode=0,否则也就是其余的情况用unload卸载窗体




Terminate 
通过设置所涉及对象的所有变量为 Nothing,Form、MDIForm、User 控件、Property Page Webclass、DHTML Page Designer或类的实例的所有引用都被从内存删除,或当对象的最后一个引用失去范围时发生。

语法

Private Sub object_Terminate( )

部分描述
object 所在处代表一个对象表达式,其值是 “应用于”列表中的一个对象。

说明
除类之外所有的对象,Terminate 事件在 Unload 事件之后发生。

如果窗体或类的实例从内存删除,因为应用程序是非正常结束,所以不会触发 Terminate 事件。例如,应用程序在从内存中删除所有存在的类或窗体的实例前,调用 End 语句,对该类或窗体,Terminate 事件不会触发。





原创粉丝点击