イベントとは、マウス クリックや与信限度額を超えたなどのアクションまたは発生であり、一部のプログラム コンポーネントによって認識され、応答するコードを記述できます。 イベント ハンドラーは、イベントに応答するために記述するコードです。
Visual Basic のイベント ハンドラーは、 Sub
プロシージャです。 ただし、通常、他の Sub
プロシージャと同じ方法で呼び出すわけではありません。 代わりに、プロシージャをイベントのハンドラーとして識別します。 これを行うには、 Handles
句と WithEvents
変数を使用するか、 AddHandler ステートメントを使用します。 Visual Basic でイベント ハンドラーを宣言する既定の方法は、 Handles
句を使用することです。 これは、統合開発環境 (IDE) でプログラムを実行するときにデザイナーによってイベント ハンドラーが記述される方法です。
AddHandler
ステートメントは、実行時に動的にイベントを発生させるのに適しています。
イベントが発生すると、Visual Basic によってイベント ハンドラー プロシージャが自動的に呼び出されます。 イベントにアクセスできるコードは、 RaiseEvent ステートメントを実行することによって発生する可能性があります。
同じイベントに複数のイベント ハンドラーを関連付けることができます。 場合によっては、イベントからハンドラーの関連付けを解除できます。 詳細については、「イベント」を参照してください。
Handlesを使用してイベント ハンドラーを呼び出すWithEvents
イベントが Event ステートメントで宣言されていることを確認 します。
WithEvents
キーワードを使用して、モジュールまたはクラス レベルでオブジェクト変数を宣言します。 この変数のAs
句では、イベントを発生させるクラスを指定する必要があります。イベント処理
Sub
プロシージャの宣言で、WithEvents
変数とイベント名を指定するHandles
句を追加します。イベントが発生すると、Visual Basic は自動的に
Sub
プロシージャを呼び出します。 コードでは、RaiseEvent
ステートメントを使用してイベントを発生させることができます。次の例では、イベントを発生させるクラスを参照するイベントと
WithEvents
変数を定義します。 イベント処理Sub
プロシージャでは、Handles
句を使用して、処理するクラスとイベントを指定します。Public Class RaisesEvent Public Event SomethingHappened() Dim WithEvents happenObj As New RaisesEvent Public Sub ProcessHappen() Handles happenObj.SomethingHappened ' Insert code to handle somethingHappened event. End Sub End Class
AddHandler を使用してイベント ハンドラーを呼び出す
イベントが
Event
ステートメントで宣言されていることを確認します。AddHandler ステートメントを実行して、イベント処理
Sub
プロシージャをイベントに動的に接続します。イベントが発生すると、Visual Basic は自動的に
Sub
プロシージャを呼び出します。 コードでは、RaiseEvent
ステートメントを使用してイベントを発生させることができます。次の例では、コンストラクターの AddHandler ステートメント を使用して、
OnFormClosing
プロシージャを FormClosingのイベント ハンドラーとして関連付けます。Sub New() InitializeComponent() AddHandler Me.FormClosing, AddressOf OnFormClosing End Sub Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs) ' Insert code to deal with impending closure of this form. End Sub
RemoveHandler ステートメントを実行することで、イベント ハンドラーをイベントから関連付け解除できます。
こちらも参照ください
.NET