2020年5月8日 星期五

VB.NET Windows Form 中事件的順序 [Form Event]

對於需要輪流處理 Windows Form 應用程式中每個事件的開發人員來說,事件的引發順序就十分重要。 當某個狀況呼叫嚴密的事件處理,如重新繪製表單的部分時,有必要了解事件在執行階段時的明確引發順序。 本說明主題提供了有關事件順序的詳細資訊,這些事件是指在應用程式和控制項的存留期 (Lifetime) 幾個重要階段中的事件。 如需滑鼠輸入事件之順序的詳細資訊,請參閱 Windows Form 中的滑鼠事件。 如需 Windows Form 事件的概觀,請參閱事件概觀 (Windows Form)。 如需事件處理常式之構成的詳細資訊,請參閱事件處理常式概觀 (Windows Form)。
應用程式啟動與關閉事件

Form 和 Control 類別會公開一組和應用程式啟動與關閉有關的事件。 當 Windows Form 應用程式啟動時,會以下列順序引發主要表單的啟動事件:

    Control.HandleCreated

    Control.BindingContextChanged

    Form.Load

    Control.VisibleChanged

    Form.Activated

    Form.Shown

當應用程式關閉時,會以下列順序引發主要表單的關閉事件:

    Form.Closing

    Form.FormClosing

    Form.Closed

    Form.FormClosed

    Form.Deactivate

Application 類別的 ApplicationExit 事件會在主要表單的關閉事件之後引發。
注意事項 注意事項

Visual Basic 2005 包含了其他的應用程式事件,例如 WindowsFormsApplicationBase.Startup 和 WindowsFormsApplicationBase.Shutdown。
焦點和驗證事件

當您透過使用鍵盤按鍵 (TAB、SHIFT+TAB 等)、呼叫 Select 或 SelectNextControl 方法,或是將 ActiveControl 屬性設定成目前的表單等作法,變更焦點時,Control 類別的焦點事件就會以下列順序發生:

    Enter

    GotFocus

    Leave

    Validating

    Validated

    LostFocus

當您經由使用滑鼠或經由呼叫 Focus 方法來變更焦點時,Control 類別的焦點事件會以下列順序發生:

    Enter

    GotFocus

    LostFocus

    Leave

    Validating

    Validated

沒有留言:

張貼留言