このドキュメントはアーカイブされており、メンテナンスされていません。

UIElement.RemoveHandler メソッド

更新 : 2007 年 11 月

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

名前空間 :  System.Windows
アセンブリ :  PresentationCore (PresentationCore.dll 内)

public void RemoveHandler(
	RoutedEvent routedEvent,
	Delegate handler
)
public final void RemoveHandler(
	RoutedEvent routedEvent,
	Delegate handler
)
public final function RemoveHandler(
	routedEvent : RoutedEvent, 
	handler : Delegate
)
メソッドは XAML では使用できません。

パラメータ

routedEvent
型 : System.Windows.RoutedEvent

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

handler
型 : System.Delegate

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

実装

IInputElement.RemoveHandler(RoutedEvent, Delegate)

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

メソッド呼び出しの入力パラメータと一致する基準で登録されたハンドラが存在しない場合は、このメソッドを呼び出しても無効です。

基準と一致したハンドラが複数アタッチされている場合は、イベント ハンドラ ストアの最初のハンドラだけが削除されます。この動作は、-= 演算子の CLR 動作と一貫性があります。

routedEvent および handler には null を指定できません。いずれかの値に null を指定しようとすると、例外が発生します。

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

イベント ラッパー定義の一部として RemoveHandler を使用する例を次に示します。

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


Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0
表示: