C# Windows Forms 事件處理順序

來源:互聯網
上載者:User

標籤:

事件引發的順序對某些Windows 表單應用來說十分重要。當某些事件需要特別處理時(如重繪表單的某些部分),必須知道事件在運行時的確切引發順序。下面就應用程式和控制項的生命週期中的幾個重要階段的事件順序進行詳細討論。

應用程式的啟動和關閉

Form和Control類有一組和程式啟動和關閉先關的事件。當Windows Forms程式啟動時,主表單的啟動事件按以下順序引發:

  • Control.HandleCreated
    為控制項建立控制代碼時發生,在首次顯示Control時會建立控制代碼。例如,如果建立的Control但其Visible屬性設定為false,則HandleCreated不會引發,直到Visiable 設定為true才引發。
  • Control.BindingContextChanged
    BindingContext屬性值改變時引發.
  • Form.Load
    Form首次顯示時引發,可以通過該事件分配表單使用的資源等任務。
  • Control.VisibleChanged
    Visible屬性改變時引發。
  • Form.Activated
    當表單啟用時引發,當應用程式處於活動狀態並且有多個Form,則活動的表單時具有輸入焦點的表單。不可見的表單不能成為活動表單。啟用form最簡單的方法時單擊它。
    在運行時啟用Form,使用Activate方法。可以使用此事件處理一些任務,如根據form在未啟用時對表單資料所做的更改來更新表單內容。
  • Form.Shown
    form首次顯示時引發,而在隨後的最小化、最大化、還原、隱藏或無效化和重新繪製都不會引發該事件

當Windows Forms程式關閉時,主表單的關閉事件按以下順序引發:

  • Form.Closing
  • Form.FormClosing
  • Form.Cloed
  • Form.FormClosed
  • Form.Deactivate

Application類的ApplicationExit事件在主表單關閉事件之後引發。

聚焦和驗證事件

當通過使用鍵盤(TAB,Shift+Tab等)、調用Select或SelectNextControl方法、或將ActiveControl屬性設定為當前表單等方法更改焦點時,Control類的聚焦事件按以下順序發生:

  • Enter
  • GotFocus
  • Leave
  • Validating
  • Validated
  • LostFocus

當使用滑鼠或通過調用Focus方法更改焦點時,Control類的聚焦事件發生順序為:

  • Enter
  • GotFocus
  • Leave
  • Validting
  • Validated

C# Windows Forms 事件處理順序

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.