devxlogo

AddRemoveEventHandler – Add or remove an event handler through reflection

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 FunctionFunction 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 TryEnd Function

devx-admin

Share the Post: