VBのイベントハンドラ(Event Handler)について
Visual Basic(VB)における イベントハンドラ(Event Handler) とは、特定のイベントが発生したときに実行される処理を記述したプロシージャ(Sub)のことです。たとえば「ボタンがクリックされた」「フォームが閉じられた」といった出来事に対して、事前に準備しておいた処理を自動で実行する役割を持ちます。
イベントとイベントハンドラの違い
- イベント: 発生する出来事(クリック、ロードなど)
- イベントハンドラ: イベントが発生したときに実行される処理
基本構文(Handlesを使う方法)
通常、Visual Studio でコントロールをダブルクリックすると自動で作成されます。
Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
MsgBox("送信ボタンがクリックされました")
End Sub
上記の例では、btnSend
というボタンがクリックされたときに、このハンドラが呼び出されます。
AddHandlerを使ったイベント登録
ランタイムでイベントハンドラを動的に追加するには AddHandler
を使います。
AddHandler btnSend.Click, AddressOf btnSend_Click
これにより、実行中にイベントとハンドラを関連付けることができます。
イベントハンドラの引数
通常、イベントハンドラは次の2つの引数を取ります。
sender As Object
:イベントを発生させたオブジェクト
e As EventArgs
:イベントに関する追加情報
sender
を使えば、1つのハンドラで複数のコントロールを扱うことも可能です。
複数のコントロールで1つのハンドラを使う
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
Dim btn As Button = CType(sender, Button)
MsgBox(btn.Text & " がクリックされました")
End Sub
CType
を使って sender を Button に変換し、クリックされたボタンの情報を取得しています。
イベントハンドラの削除(RemoveHandler)
不要になったイベントハンドラは、RemoveHandler
を使って解除できます。
RemoveHandler btnSend.Click, AddressOf btnSend_Click
まとめ
イベントハンドラ(Event Handler)は、イベントが発生したときにどのような処理を行うかを定義する重要な要素です。GUIアプリケーションやユーザー操作に反応する処理では欠かせない仕組みです。Handles
を使った定義と、AddHandler
を使った動的な登録を使い分けることで、柔軟なイベント制御が可能になります。