vb之窗体关闭事件

时间:2022-05-08 02:13:10

QueryUnload 事件

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

  格式:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

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

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

  UnloadMode 参数返回下列值:

vb之窗体关闭事件

  以下是简单的应用

vb之窗体关闭事件

Unload事件

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

  格式:Private Sub Form_Unload(Cancel As Integer)

  Cancel  一个整数,用来确定窗体是否从屏幕删除。如果 cancel为 0,则窗体被删除。将cancel设置为任何一个非零的值可防止窗体被删除。



QueryUnload与Unload的异同

  1、QueryUnload发生在Unload之前

  2、QueryUnload和Unload都可以阻止窗体卸载

  3、QueryUnload可以检测窗体的卸载方式(比如是点击窗体右上角的X卸载,还是在软件代码中用UnloadMe命令卸载),Unload则无此功能

  4、当程序有多个窗体且包含MDI窗体时,关闭MDI窗体时,则MDI窗体和其在主窗体内显示的子窗体(并不是说全部的子窗体)的QueryUnload都会被触发(换句话说就是即使不是本窗体关闭QueryUnload事件也会触发的),而Unload事件则只发生在卸载的窗体中