就是想实现在关闭一个窗口时给出提示信息,根据用户的选择来确定是否真正关闭窗口,代码如下:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim a As VbMsgBoxResult
a= MsgBox("真的要退出吗?", vbYesNo, "提示")
If a= vbNo Then
Cancel = 1
Else
Cancel = 0
End If
End Sub
上面是在QueryUnload中加入提示代码实现用户选择的功能。在Unload事件中加入同样的代码(当然相应的在QuerryUnload事件中就不用了)也可以实现相同的功能!即:
Private Sub Form_Unload(Cancel As Integer)
Dim a As VbMsgBoxResult
a = MsgBox("真的要退出吗?", vbYesNo, "提示")
If a = vbNo Then
Cancel = 1
Else
Cancel = 0
End If
End Sub那么这种事件竟究有些什么区别呢?
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim a As VbMsgBoxResult
a= MsgBox("真的要退出吗?", vbYesNo, "提示")
If a= vbNo Then
Cancel = 1
Else
Cancel = 0
End If
End Sub
上面是在QueryUnload中加入提示代码实现用户选择的功能。在Unload事件中加入同样的代码(当然相应的在QuerryUnload事件中就不用了)也可以实现相同的功能!即:
Private Sub Form_Unload(Cancel As Integer)
Dim a As VbMsgBoxResult
a = MsgBox("真的要退出吗?", vbYesNo, "提示")
If a = vbNo Then
Cancel = 1
Else
Cancel = 0
End If
End Sub那么这种事件竟究有些什么区别呢?
解决方案 »
- VB.net 如何将文本和EXCEL文件导入到 MDB 数据库
- 如何获取当前桌面被激活的 文件夹窗口 路径
- 如何把vb中的data放到一已知目錄的excel,然後將excel另存到user想要的目錄中,很easy
- 大哥,大姐,快来看看吗,数据库连接不上,谁帮我解决了给一百分呀,快点呀,我在线等呀
- Data Environment问题,高手请进!
- 关于sql server自动编号的问题
- 一个建DSN的问题
- 如何在Richtextbox 里一句话实现不同的颜色?(在线等候)
- 排序的问题!!!
- vb的开始菜单里有RECENT页,怎样清除它下面的文件名?
- 为什么在运行程序后就打开不了VF数据库了!请大家帮帮忙!~
- 怎么在VB中嵌入EXCEL表格?
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)QueryUnload 事件语法包括下列部分:部分 描述
cancel 一个整数。将此参数设定为除 0 以外的任何值,可在所有已装载的窗体中停止 QueryUnload 事件,并阻止该窗体和应用程序的关闭。
unloadmode 一个值或一个常数,如返回值中所描述的,它指示引起 QueryUnload 事件的原因。
返回值unloadmode 参数返回下列值:常数 值 描述
vbFormControlMenu 0 用户从窗体上的“控件”菜单中选择“关闭”指令。
vbFormCode 1 Unload 语句被代码调用。
vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。
vbAppTaskManager 3 Microsoft Windows 任务管理器正在关闭应用程序。
vbFormMDIForm 4 MDI 子窗体正在关闭,因为 MDI 窗体正在关闭。
这些常数是在对象浏览器中的 Visual Basic (VB) 对象库中列出。说明此事件的典型用法是在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。
当一个应用程序关闭时,可使用 QueryUnload 或 Unload 事件过程将 Cancel 属性设置为 True 来阻止关闭过程。但是,QueryUnload 事件是在任一个卸载之前在所有窗体中发生,而 Unload 是在每个窗体卸载时发生。
语句关闭该窗体时,此事件被触发。语法Private Sub object_Unload(cancel As Integer)Unload 事件语法包括下列部分:部分 描述
object 一个对象表达式,其值是“应用于”列表中的一个对象。
cancel 一个整数,用来确定窗体是否从屏幕删除。如果 cancel 为 0,则窗体被删除。将 cancel 设置为任何一个非零的值可防止窗体被删除。
说明将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows
中的退出。
在窗体被卸载时,可用一个 Unload 事件过程来确认窗体是否应被卸载或用来指定想要发生的操作。也可在其中包括任何在关闭该窗体时也许需要的验证代码或将其中的数据储存到一个文件中。
QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生。使用 Unload 语句或在一个窗体的“控件”菜单上选择“关闭”命令,用“任务窗口”列表上的“结束任务”按钮退出应用程序,在当前窗体为其一个子窗体的情况下关闭该 MDI 窗体,或当应用程序正在运行的时候退出 Microsoft Windows 操作环境等情况都可引发 Unload 事件。
ss1 = InputBox("请输入退出密码")
Cancel = IIf(ss1 = "password", 0, 1)
End Sub上面的代码在关闭前弹出一个输入对话框,用户必须输入密码“password”才能关闭窗体
同样的代码不在动,在加入下面的代码Private Sub Form_Unload(Cancel As Integer)
Cancel = 1
End Sub这时候不管你输入的内容与密码相不相同,都不会被关闭了这就说明Unload发生在QueryUnload之后