共用方式為


屬性變更事件

如果您想要讓控制項在名為 PropertyName 的屬性變更時傳送通知,請定義名為 On PropertyName Changed 的事件,以及引發事件的 PropertyName Changed 方法。 Windows Forms 中的命名慣例是將 [已變更 ] 一字 附加至屬性的名稱。 屬性變更事件的相關事件委派類型為 EventHandler ,而事件資料類型為 EventArgs 。 基類 Control 會定義許多屬性變更的事件,例如 BackColorChangedBackgroundImageChangedFontChangedLocationChanged 和其他事件。 如需事件的背景資訊,請參閱 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

另請參閱