イベント クラスの宣言とハンドラ WithEvents Handles
イベントは発生しただけでは意味ありません。
処理をしないとね。
WithEventsを使用するとイベントを持ったクラスを作成できます。
イベントを持ったクラスの宣言
WithEvents 変数名 As New イベントを宣言したクラス
イベントハンドラの定義
Sub 変数名 Handles イベントのクラスとイベント名
正確には違うますが
Handles の後ろで紐付けられてます。
ボタンクリックを見てもらえば何となくわかると思います。
サンプルソース
Public Class Form1
Event sample()
WithEvents sampleevnt As New Form
Sub eventsample() Handles Me.sample
MsgBox(“イベント処理しました。”)
End Sub
Sub main()
RaiseEvent sample()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Call main()
End Sub
End Class
サンプルソースの Sub mainはエントリーポイント的な奴ではなく
ただのサブルーチンですw
実行結果は
イベント処理しました。が表示されます。
まあ、画面分けるのがメンドクサイかったのでそのまま書きました。
説明のためにWithEventsを宣言してますがいらないです。
WithEvents sampleevnt As New Form
を削除しても動きます。
何故なら別のクラスで作成することを想定していて
わざわざを宣言してます。
WithEventsをdimに変えたらただのクラスの宣言ですよね。
普通は分けて書きますから使うんですがね。