1. 程式人生 > >vb之窗體關閉事件

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事件則只發生在解除安裝的窗體中。