プロパティ変更イベントProperty-Changed Events

という名前のプロパティのときに通知を送信する、制御したいかどうかPropertyNameという名前のイベントの定義の変更、 PropertyName Changedという名前のメソッドとOn PropertyName Changedイベントを発生させます。If you want your control to send notifications when a property named PropertyName changes, define an event named PropertyNameChanged and a method named OnPropertyNameChanged that raises the event. Windows フォームでの名前付け規則では、単語を追加Changedプロパティの名前にします。The naming convention in Windows Forms is to append the word Changed to the name of the property. プロパティ変更イベントに関連付けられているイベントのデリゲート型はEventHandler、イベントのデータ型は、EventArgsします。The associated event delegate type for property-changed events is EventHandler, and the event data type is EventArgs. 基本クラスControlなど多くのプロパティ変更イベントを定義BackColorChangedBackgroundImageChangedFontChangedLocationChanged、およびその他。The base class Control defines many property-changed events, such as BackColorChanged, BackgroundImageChanged, FontChanged, LocationChanged, and others. イベントに関する背景情報は、次を参照してください。イベントWindows フォーム コントロールのイベントします。For background information about events, see Events and Events in Windows Forms Controls.

プロパティ変更イベントは、変更に応答するイベント ハンドラーをアタッチするコントロールのコンシューマーができるため便利です。Property-changed events are useful because they allow consumers of a control to attach event handlers that respond to the change. コントロールを生成するプロパティ変更イベントに応答する場合は、オーバーライド、対応するOn PropertyName Changedメソッド、イベントにデリゲートをアタッチする代わりにします。If your control needs to respond to a property-changed event that it raises, override the corresponding OnPropertyNameChanged method instead of attaching a delegate to the event. その他のプロパティを更新するか、その描画サーフェイスの一部またはすべてを再描画、コントロールは通常、プロパティ変更イベントに応答します。A control typically responds to a property-changed event by updating other properties or by redrawing some or all of its drawing surface.

次の例は、どのようにFlashTrackBarカスタム コントロールの応答から継承したプロパティ変更イベントの一部Controlします。The following example shows how the FlashTrackBar custom control responds to some of the property-changed events that it inherits from Control. 完全なサンプルでは、「方法。進行状況を示す Windows フォーム コントロールを作成するします。For the complete sample, see How to: Create a Windows Forms Control That Shows Progress.

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

関連項目See also