共用方式為


屬性變更事件

如果您想要讓控制項在名為 PropertyName 的屬性變更時傳送通知,請定義引發事件的名為 PropertyNameChanged 的事件和名為 OnPropertyNameChanged 的方法。 Windows Forms 中的命名慣例是將字組 Changed 附加至屬性的名稱。 屬性變更事件的相關事件委派類型是 EventHandler,而事件資料類型為 EventArgsControl 基底類別會定義許多屬性變更的事件,例如 BackColorChangedBackgroundImageChangedFontChangedLocationChanged 等等。 如需事件的背景資訊,請參閱事件Windows Forms 控制項中的事件

屬性變更事件很有用,因為可讓控制項的取用者附加可回應變更的事件處理常式。 如果您的控制項需要回應所引發的屬性變更事件,請覆寫對應的 OnPropertyNameChanged 方法,而不是將委派附加至事件。 控制項通常會藉由更新其他屬性或重新繪製部分或所有繪圖介面,來回應屬性變更事件。

下列範例示範 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

另請參閱