|
Language: VB7 Expertise: Advanced
Jul 28, 2003
AddRemoveEventHandler - Add or remove an event handler through reflection
' Add or remove an event handler through reflection,
' and return True if successful
'
' Examples:
' ' add an event handler for Button1's Click event
' AddRemoveEventHandler(Button1, "Click", New EventHandler(AddressOf
' OnButton1Click))
' ' remove an event handler for Button1's Click event
' AddRemoveEventHandler(Button1, "Click", New EventHandler(AddressOf
' OnButton1Click), False)
Function AddRemoveEventHandler(ByVal obj As Object, ByVal eventName As String, _
ByVal eventHandler As [Delegate]) As Boolean
Return AddRemoveEventHandler(obj, eventName, eventHandler, True)
End Function
Function AddRemoveEventHandler(ByVal obj As Object, ByVal eventName As String, _
ByVal eventHandler As [Delegate], ByVal addEventHandler As Boolean) As _
Boolean
Dim type As Type = obj.GetType()
' get the EventInfo object, exit if not found
Dim evInfo As System.Reflection.EventInfo = type.GetEvent(eventName)
If evInfo Is Nothing Then Return False
Try
If addEventHandler Then
evInfo.AddEventHandler(obj, eventHandler)
Else
evInfo.RemoveEventHandler(obj, eventHandler)
End If
Return True
Catch
Return False
End Try
End Function
Francesco Balena
|