vb之窗体关闭事件

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参数返回下列值:


以下是简单的应用


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事件则只发生在卸载的窗体中

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...