[C#] Window Form 事件順序

  • 17516
  • 0
  • 2009-11-14

摘要:C# WindowForm事件順序

微軟MSND中也提到:對於需要輪流處理 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

焦點和驗證事件:當透過使用鍵盤按鍵 (TAB、SHIFT+TAB 等)、呼叫 Select 或 SelectNextControl 方法,

或是將 ActiveControl 屬性設定成目前的表單等作法,變更焦點時,Control 類別的焦點事件就會以下列順序發生:

    * Enter
    * GotFocus
    * Leave
    * Validating
    * Validated
    * LostFocus

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

    * Enter
    * GotFocus
    * LostFocus
    * Leave
    * Validating
    * Validated

三小俠  小弟獻醜,歡迎指教