次の方法で共有


UIElement.RemoveHandler(RoutedEvent, Delegate) メソッド

定義

指定したルーティング イベント ハンドラーをこの要素から削除します。

public:
 virtual void RemoveHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void RemoveHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub RemoveHandler (routedEvent As RoutedEvent, handler As Delegate)

パラメーター

routedEvent
RoutedEvent

ハンドラーがアタッチされているルーティング イベントの識別子。

handler
Delegate

この要素のイベント ハンドラー コレクションから削除する特定のハンドラー実装。

実装

次の例では、イベント ラッパー定義の一部として使用 RemoveHandler します。

public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
    "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

// Provide CLR accessors for the event
public event RoutedEventHandler Tap
{
        add { AddHandler(TapEvent, value); } 
        remove { RemoveHandler(TapEvent, value); }
}
Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

' Provide CLR accessors for the event
Public Custom Event Tap As RoutedEventHandler
    AddHandler(ByVal value As RoutedEventHandler)
        Me.AddHandler(TapEvent, value)
    End AddHandler

    RemoveHandler(ByVal value As RoutedEventHandler)
        Me.RemoveHandler(TapEvent, value)
    End RemoveHandler

    RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Me.RaiseEvent(e)
    End RaiseEvent
End Event

注釈

この API を使用する最も一般的なシナリオは、カスタム ルーティング イベントに関連付けられている共通言語ランタイム (CLR) の "ラッパー" イベントを実装する場合です。具体的には、CLR レベルでハンドラーの "削除" ロジックを実装する場合です。 この解説セクションに続く例は、このシナリオを示しています。

このメソッドの呼び出しは、メソッド呼び出しの入力パラメーターに一致する条件で登録されたハンドラーがない場合は効果がありません。

条件に一致する複数のハンドラーがアタッチされている場合、イベント ハンドラー ストア内の最初のハンドラーのみが削除されます。 この動作は、演算子の -= CLR 動作と一致します。

どちらroutedEventでもありませんhandler``null. いずれかの値 null を指定しようとすると、例外が発生します。

このメソッドは、既に処理されているイベントの handledEventsToo 処理を可能にするシグネチャを使用してハンドラーが最初に AddHandler(RoutedEvent, Delegate, Boolean) 追加された場合に提供されるパラメーター情報を無視します。 いずれかの種類のハンドラーが削除されます。

適用対象

こちらもご覧ください