屬性變更事件
如果您想要讓控制項在名為 PropertyName 的屬性變更時傳送通知,請定義名為 On
PropertyName Changed
的事件,以及引發事件的 PropertyName Changed
方法。 Windows Forms 中的命名慣例是將 [已變更 ] 一字 附加至屬性的名稱。 屬性變更事件的相關事件委派類型為 EventHandler ,而事件資料類型為 EventArgs 。 基類 Control 會定義許多屬性變更的事件,例如 BackColorChanged 、 BackgroundImageChanged 、 FontChanged 、 LocationChanged 和其他事件。 如需事件的背景資訊,請參閱 Windows Forms 控制項 中的事件 和 事件。
屬性變更事件很有用,因為它們可讓控制項的取用者附加回應變更的事件處理常式。 如果您的控制項需要回應所引發的屬性變更事件,請覆寫對應的 On
PropertyName Changed
方法,而不是將委派附加至事件。 控制項通常會藉由更新其他屬性或重新繪製部分或其所有繪圖介面,來回應屬性變更的事件。
下列範例示範自訂控制項如何 FlashTrackBar
回應繼承自 Control 的一些屬性變更事件。 如需完整的範例,請參閱 如何:建立顯示進度 的 Windows Forms 控制項。
protected override void OnTextChanged(EventArgs e) {
base.OnTextChanged(e);
Invalidate();
}
protected override void OnBackColorChanged(EventArgs e) {
base.OnBackColorChanged(e);
if ((baseBackground != null) && (!showGradient)) {
baseBackground.Dispose();
baseBackground = null;
}
}
Protected Overrides Sub OnTextChanged(ByVal E As EventArgs)
MyBase.OnTextChanged(E)
Invalidate()
End Sub
Protected Overrides Sub OnBackColorChanged(ByVal E As EventArgs)
MyBase.OnBackColorChanged(E)
If (baseBackground IsNot Nothing) And Not ShowGradient Then
baseBackground.Dispose()
baseBackground = Nothing
End If
End Sub
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應