UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) Method

定義

指定したルーティング イベント ハンドラーをこの要素から削除します。Removes the specified routed event handler from this element.

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

パラメーター

routedEvent
RoutedEvent RoutedEvent RoutedEvent

ハンドラーがアタッチされているルーティング イベントの識別子。The identifier of the routed event for which the handler is attached.

handler
Delegate Delegate Delegate

この要素のイベント ハンドラー コレクションから削除する特定のハンドラー実装。The specific handler implementation to remove from the event handler collection on this element.

実装

次の例ではRemoveHandlerイベント ラッパー定義の一部として。The following example uses RemoveHandler as part of an event wrapper definition.

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

注釈

これを使用するための最も一般的なシナリオAPIAPIを実装する場合は、 共通言語ランタイム (CLR)common language runtime (CLR) 「ラッパー」イベントに関連付けられたカスタム ルーティング イベントをハンドラーでの「削除」するロジックを実装するときに具体的には、CLRCLRレベル。The most common scenario for using this APIAPI is when you implement the 共通言語ランタイム (CLR)common language runtime (CLR) "wrapper" event that is associated with a custom routed event, specifically when you implement the "remove" logic for handlers at the CLRCLR level. これに続く例では、「解説」のセクションでは、このシナリオを示しています。The example that follows this remarks section illustrates this scenario.

このメソッドを呼び出しても何も起こりません、メソッドの呼び出しの入力パラメーターに一致する条件で登録されたハンドラーがない場合。Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

複数のイベント ハンドラー ストアが削除される最初のハンドラーにのみ、条件に一致する 1 つのハンドラーがアタッチされます。If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. この動作は整合CLRCLRの動作、-=演算子。This behavior is consistent with CLRCLR behavior of the -= operator.

どちらもroutedEventhandlerありますnullします。Neither routedEvent nor handler may be null. いずれかの値として提供しようとしています。nullで例外が発生します。Attempting to provide either value as null will raise an exception.

このメソッドは無視、handledEventsToo場合は、ハンドラーが最初に提供されているパラメーターについては、追加、AddHandler(RoutedEvent, Delegate, Boolean)処理済みイベントの処理を有効に署名します。This method ignores the handledEventsToo parameter information, which is provided if the handler was first added with the AddHandler(RoutedEvent, Delegate, Boolean) signature that enables handling of already-handled events. ハンドラーのいずれかの型が削除されます。Either type of handler is removed.

適用対象

こちらもご覧ください