Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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
    Next
End Sub
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap