Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB7
Expertise: Advanced
Nov 17, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

AddHandlerByName - Attaching to an object an event handler by name

' A generic routine that takes an object, an event name, and a list of potential
' delegates to event handlers, and selects the first delegate that matches the
' expected signature of the event handler.
' Example:
'    AddHandlerByName(da, "RowUpdated", '       New OleDbRowUpdatedEventHandler
' (AddressOf OnOleDbRowUpdated), 
'       New SqlRowUpdatedEventHandler(AddressOf OnSqlRowUpdated))

Sub AddHandlerByName(ByVal obj As Object, ByVal eventName As String, _
    ByVal ParamArray events() As [Delegate])
    ' Get the type of the object argument.
    Dim ty As System.Type = obj.GetType()
    ' Get the EventInfo corresponding to the requested event
    Dim evInfo As System.Reflection.EventInfo = ty.GetEvent(eventName)
    ' Get the delegate class that represents the event procedure
    Dim evType As System.Type = evInfo.EventHandlerType

    ' Compare this type with arguments being passed.
    Dim del As [Delegate]
    For Each del In events
        If del.GetType Is evType Then
            ' If this is the right delegate, add it to the list of event 
            ' handlers and exit.
            evInfo.AddEventHandler(obj, del)
            Exit Sub
        End If
End Sub
Francesco Balena
Thanks for your registration, follow us on our social networks to keep up-to-date