为了账号安全,请及时绑定邮箱和手机立即绑定

VB中的Unload事件与QueryUnload事件有什么不同?

VB中的Unload事件与QueryUnload事件有什么不同?

慕田峪9158850 2019-04-02 09:06:14
VB中的Unload事件与QueryUnload事件有什么不同?
查看完整描述

4 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

1、QueryUnload发生在Unload之前
2、QueryUnload和Unload都可以阻止窗体卸载
3、QueryUnload可以检测窗体的卸载方式(比如是点击窗体右上角的X卸载,还是在软件代码中用Unload Me命令卸载),Unload则无此功能
4、当程序有多个窗体时,任何一个窗体卸载,则所有窗体的QueryUnload都会被触发(换句话说就是即使不是本窗体关闭QueryUnload事件也会触发的),而Unload事件则只发生在卸载的窗体中
5、如果用通俗的话来解析就是:QueryUnload是向所有窗体宣布“我要卸载了!谁有不同意见就说”,而Unload只是在自身内部通知要卸载。

查看完整回答
反对 回复 2019-04-06
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

当那个窗体被重新加载时,它的所有控件的内容均被重新初始化。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。
将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。

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

QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生
当一个 MDIForm 对象关闭时,QueryUnload 事件先在 MDI 窗体发生,然后在所有 MDI 子窗体中发生。如果没有窗体取消 QueryUnload 事件,该 Unload 事件首先发生在所有其它窗体中,然后再发生在 MDI 窗体中。当一个子窗体或一个 Form 对象关闭时,在那个窗体中的 QueryUnload 事件先于该窗体的 Unload 事件发生。
当一个应用程序关闭时,可使用 QueryUnload 或 Unload 事件过程将 Cancel 属性设置为 True 来阻止关闭过程。但是,QueryUnload 事件是在任一个卸载之前在所有窗体中发生,而 Unload 是在每个窗体卸载时发生。


查看完整回答
反对 回复 2019-04-06
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

意思是从内存中卸载窗体或控件。
在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。
  若为 MDIForm 对象,先发生 MDIForm 对象的 Query_Unload 事件过程,接着是各 MDI 子窗体 的 Query_Unload 事件过程和 Form_Unload 事件过程,最后是 MDIForm 对象的 Form_Unload 事件过程。

查看完整回答
反对 回复 2019-04-06
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

KeyAscii = 27 就是当按Esc的时候Form_QueryUnload 就是窗体卸载时间QueryUnload 事件在一个窗体或应用程序关闭之前发生。此事件的典型用法是在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。

Unload 事件是当窗体从屏幕上删除时发生。将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。

查看完整回答
反对 回复 2019-04-06
  • 4 回答
  • 0 关注
  • 1930 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信