英語で読む

次の方法で共有


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

定義

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

C#
public void RemoveHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);

パラメーター

routedEvent
RoutedEvent

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

handler
Delegate

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

実装

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

C#
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); }
}

注釈

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

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

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

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

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

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

こちらもご覧ください