イベントハンドラ。AddHandler と Handles 基本の基本の基(ry

↓こんなイベントを発生するクラスがあったとして、


[Visual Basic]

Imports System
Imports System.Collections.Generic


' ジェネリッククラスであることに何の意味も無いけど。
Public Class Folder(Of T)


Private _value As T

Public Property Value() As T
Get
Return
_value
End Get
Set(ByVal value As T)
_value = value
' イベントを発生させる。
RaiseEvent ValueUpdated(Me, New EventArgs)
End Set
End Property


Public Event ValueUpdated(ByVal sender As Object, ByVal e As EventArgs)


End Class

イベントをハンドルする方法は、

[Visual Basic]

Imports System
Imports System.Collections.Generic


Public Class EventHandleTestClass

' WithEvents 宣言で イベントの発生が通知されるようになるさ。
Private WithEvents eventSender As New Folder(Of Object)


Private Sub eventSender_ValueUpdated(ByVal sender As Object, ByVal e As EventArgs) Handles eventSender.ValueUpdated

Console.WriteLine("ハンド!ハンド!今絶対手で触ったって!")

End Sub


End Class

または、

[Visual Basic]

Imports System
Imports System.Collections.Generic


Public Class EventHandleTestClass


Private eventSender As New Folder(Of Object)


Public Sub New()

' AddHandler で動的にイベントハンドラを追加するさ。
AddHandler eventSender.ValueUpdated, AddressOf Me.eventSender_ValueUpdated

End Sub


Private Sub eventSender_ValueUpdated(ByVal sender As Object, ByVal e As EventArgs)

Console.WriteLine("ハンド!ハンド!今絶対手で触ったって!")

End Sub


End Class

と書ける。