Handles 句 (Visual Basic)
プロシージャが指定されたイベントを処理することを宣言します。
構文
proceduredeclaration Handles eventlist
指定項目
proceduredeclaration
イベントを処理するプロシージャの Sub
プロシージャ宣言。
eventlist
コンマで区切られた、proceduredeclaration
が処理するイベントの一覧。 イベントは、現在のクラスの基底クラス、または WithEvents
キーワードを使用して宣言されたオブジェクトによって発生する必要があります。
Remarks
プロシージャ宣言の最後で Handles
キーワードを使用すると、 WithEvents
キーワードで宣言されたオブジェクト変数によって発生したイベントが処理されるようになります。 また、Handles
キーワードを派生クラスで使用すると、基底クラスからのイベントを処理することもできます。
Handles
キーワードと AddHandler
ステートメントはどちらも特定のプロシージャで特定のイベントを処理するように指定できますが、両者には違いがあります。 Handles
キーワードは、プロシージャの定義時に特定のイベントを処理するよう指定する場合に使用します。 AddHandler
ステートメントは、実行時にプロシージャをイベントに接続します。 詳細については、「AddHandler ステートメント」を参照してください。
カスタム イベントの場合、アプリケーションは、プロシージャをイベント ハンドラーとして追加するときにイベントの AddHandler
アクセサーを呼び出します。 カスタム イベントの詳細については、「Event ステートメント」を参照してください。
例 1
Public Class ContainerClass
' Module or class level declaration.
WithEvents Obj As New Class1
Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class
Sub EventHandler() Handles Obj.Ev_Event
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub
' Call the TestEvents procedure from an instance of the ContainerClass
' class to test the Ev_Event event and the event handler.
Public Sub TestEvents()
Obj.CauseSomeEvent()
End Sub
End Class
派生クラスで Handles
ステートメントを使用して基底クラスからのイベントを処理する方法を次の例に示します。
Public Class BaseClass
' Declare an event.
Event Ev1()
End Class
Class DerivedClass
Inherits BaseClass
Sub TestEvents() Handles MyBase.Ev1
' Add code to handle this event.
End Sub
End Class
例 2
次の例には、WPF アプリケーション プロジェクトの 2 つのボタン イベント ハンドラーが含まれています。
Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
MessageBox.Show(sender.Name & " clicked")
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
MessageBox.Show(sender.Name & " clicked")
End Sub
例 3
次の例は、前の例と同じです。 Handles
句の eventlist
には 2 つのボタンのイベントが含まれています。
Private Sub Button_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click, Button2.Click
MessageBox.Show(sender.Name & " clicked")
End Sub
関連項目
.NET