プロパティ変更イベント

更新 : 2007 年 11 月

PropertyName というプロパティが変更されたときに、コントロールから通知が送信されるようにするには、PropertyNameChanged というイベントと、イベントを発生させる OnPropertyNameChanged というメソッドを定義します。Windows フォームの名前付け規則に従い、プロパティ名の前に Changed という単語が付け加えられます。プロパティ変更イベントの型に関連付けられているイベント デリゲート型は EventHandler であり、イベント データ型は EventArgs です。基本クラスの Control は、BackColorChangedBackgroundImageChangedFontChangedLocationChanged など、多くのプロパティ変更イベントを定義します。イベントに関する背景情報については、「イベントの処理と発生」と「Windows フォーム コントロールのイベント」を参照してください。

プロパティ変更イベントを使用すると、変更に反応するイベント ハンドラをコントロールのコンシューマが追加できるため、便利です。コントロールが発生させたプロパティ変更イベントへこのコントロール自体が応答する必要がある場合には、デリゲートをイベントへアタッチする代わりに、対応する OnPropertyNameChanged メソッドをオーバーライドします。通常、プロパティ変更イベントに対して応答するときに、コントロールは他のプロパティを更新するか、コントロールの描画面全体または一部を再描画します。

Control から継承したプロパティ変更イベントの一部に対して FlashTrackBar カスタム コントロールが応答する部分を示す例を次に示します。サンプル全体については、「方法 : 進行状況を示す Windows フォーム コントロールを作成する」を参照してください。

Protected Overrides Sub OnTextChanged(ByVal E As EventArgs)
    MyBase.OnTextChanged(E)
    Invalidate()
End Sub

Protected Overrides Sub OnBackColorChanged(ByVal E As EventArgs)
    MyBase.OnTextChanged(E)
    If (baseBackground IsNot Nothing) And Not ShowGradient Then
        baseBackground.Dispose()
        baseBackground = Nothing
    End If
End Sub
protected override void OnTextChanged(EventArgs e) {
    base.OnTextChanged(e);
    Invalidate();
}

protected override void OnBackColorChanged(EventArgs e) {
    base.OnTextChanged(e);
    if ((baseBackground != null) && (!showGradient)) {
                baseBackground.Dispose();
                baseBackground = null;
    }
}

参照

概念

Windows フォーム コントロールのイベント

その他の技術情報

イベントの処理と発生

Windows フォーム コントロールのプロパティ