控制事件 (Windows Forms .NET)
控制項會提供當使用者與控制項互動或控制項狀態變更時所引發的事件。 本文說明大部分控制項共用的常見事件、使用者互動所引發的事件,以及特定控制項特有的事件。 如需 Windows Forms 中事件的詳細資訊,請參閱 事件概觀 和 處理和引發事件 。
重要
.NET 7 和 .NET 6 的桌面指南檔正在建置中。
如需如何新增或移除控制項事件處理常式的詳細資訊,請參閱 如何處理事件 。
常見事件
控制項透過基類 Control 提供超過 60 個事件。 其中包括 Paint 事件,這會導致繪製控制項、顯示視窗的相關事件,例如 Resize 和 Layout 事件,以及低階滑鼠和鍵盤事件。 某些低階事件會由 Control 合成為語意事件,例如 Click 和 DoubleClick 。 大部分共用事件都屬於下列類別:
- 滑鼠事件
- 鍵盤事件
- 屬性已變更事件
- 其他事件
滑鼠事件
考慮到 Windows Forms 是使用者介面 (UI) 技術,滑鼠輸入是使用者與 Windows Forms 應用程式互動的主要方式。 所有控制項都提供基本的滑鼠相關事件:
- MouseClick
- MouseDoubleClick
- MouseDown
- MouseEnter
- MouseHover
- MouseLeave
- MouseMove
- MouseUp
- MouseWheel
- Click
如需詳細資訊,請參閱 使用滑鼠事件 。
鍵盤事件
如果控制項回應使用者輸入,例如 TextBox 或 Button 控制項,則會針對 控制項引發適當的輸入事件。 控制項必須焦點,才能接收鍵盤事件。 某些控制項,例如 Label 控制項,無法焦點,而且無法接收鍵盤事件。 以下是鍵盤事件的清單:
如需詳細資訊,請參閱 使用鍵盤事件 。
屬性已變更事件
Windows Forms 會遵循具有變更事件之屬性的 PropertyNameChanged 模式。 Windows Forms 所提供的資料系結引擎會辨識此模式,並與它整合良好。 建立您自己的控制項時,請實作此模式。
此模式會實作下列規則,並使用 屬性 FirstName
作為範例:
- 為您的屬性命名:
FirstName
。 - 使用 模式
PropertyNameChanged
建立 屬性的事件:FirstNameChanged
。 - 使用 模式
OnPropertyNameChanged
建立私人或受保護的方法:OnFirstNameChanged
。
如果屬性 FirstName
集修改了備份值,則會 OnFirstNameChanged
呼叫 方法。 OnFirstNameChanged
方法會引發 FirstNameChanged
事件。
以下是控制項的一些通用屬性已變更事件:
事件 | 描述 |
---|---|
BackColorChanged | 發生於 BackColor 屬性的值變更時。 |
BackgroundImageChanged | 發生於 BackgroundImage 屬性的值變更時。 |
BindingContextChanged | 發生於 BindingContext 屬性的值變更時。 |
DockChanged | 發生於 Dock 屬性的值變更時。 |
EnabledChanged | 發生於 Enabled 屬性值變更時。 |
FontChanged | 發生在 Font 屬性值變更時。 |
ForeColorChanged | 發生在 ForeColor 屬性值變更時。 |
LocationChanged | 發生於 Location 屬性值變更時。 |
SizeChanged | 發生在 Size 屬性值變更時。 |
VisibleChanged | 發生在 Visible 屬性值變更時。 |
如需事件的完整清單,請參閱 控制類別 的 <事件>事件> >一節。
其他事件
控制項也會根據控制項的狀態或其他與控制項的互動來引發事件。 例如, HelpRequested 如果控制項有焦點,而且使用者按下 F1 鍵,就會引發 事件。 如果使用者按下表單上的上下文相關 [說明 ] 按鈕,然後在控制項上按下說明游標,也會引發此事件。
另一個範例是當控制項變更、移動或調整大小時, Paint 就會引發 事件。 此事件可讓開發人員有機會繪製控制項並變更其外觀。
如需事件的完整清單,請參閱 控制類別 的 <事件>事件> >一節。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應