1. 程式人生 > >C#WinForm窗體事件執行次序(較完整版)

C#WinForm窗體事件執行次序(較完整版)

一、以下是網路上可搜尋到的次序

   當 Windows Form 應用程式啟動時,會以下列順序引發主要表單的啟動事件:
        System.Windows.Forms.Control.HandleCreated
        System.Windows.Forms.Control.BindingContextChanged
        System.Windows.Forms.Form.Load
        System.Windows.Forms.Control.VisibleChanged
        System.Windows.Forms.Form.Activated
        System.Windows.Forms.Form.Shown

    當應用程式關閉時,會以下列順序引發主要表單的關閉事件:         
        System.Windows.Forms.Form.Closing
        System.Windows.Forms.Form.FormClosing
        System.Windows.Forms.Form.Closed
        System.Windows.Forms.Form.FormClosed
        System.Windows.Forms.Form.Deactivate

二、以下是我測試的次序,全部protected override 這些事件,並且在其base.的前後分別處理一次,如下

 

OnClientSizeChanged1
OnClientSizeChanged2
OnClientSizeChanged1
OnClientSizeChanged2

// Loyout要多次執行
OnLayout1 
OnLayout2
OnHanleCreated1
OnHanleCreated2
OnInvalidated1
OnInvalidated2

// 注意這裡的一點點變化
OnCreateControl1
OnLoad1
OnLoad2
OnCreateControl2

//
OnLayout1
OnLayout2
OnActivated1
OnActivated2
OnShown1
OnShown2
OnPain1
OnPain2

希望這個次序能給大家帶來用處。。可以在不同事件中去處理所需要的程式碼

三、以下是程式碼源。C# 2008 Express