Event handler delegate as variable

S

steve

Hi All

I have a program which creates buttons on a form on loading from data in a
database table and connects them to an event handler as follows...

btn = New Button

btn.Text = dr("buttontext").ToString

btn.Visible = True

btn.Dock = DockStyle.Fill

btn.BackColor = Color.FromKnownColor(KnownColor.InactiveCaptionText)

btn.Name = dr("buttonname").ToString

If dr("AddressOf") = "historyclick" Then

AddHandler btn.Click, AddressOf historyClick

ElseIf dr("AddressOf") = "pricelevelclick" Then

AddHandler btn.Click, AddressOf pricelevelClick

ElseIf dr("AddressOf") = "keyboardsclick" Then

AddHandler btn.Click, AddressOf keyboardsClick

end if

Is there any way to use a variable to link to the event handler delegate
instead of comparing the db field value as in the above code

e.g AddHandler btn.Click, AddressOf dr("AddressOf") (This doesn't work
obviously)



Regards

Steve
 
?

=?ISO-8859-1?Q?G=F6ran_Andersson?=

Yes, it's possible using reflection, but IMHO far too compex for
something trivial like this.

You can use a Select Case statement to make your code a bit more
managable. Something like this:

Select Case dr("AddressOf")
Case "historyclick": AddHandler btn.Click, AddressOf historyClick
Case "pricelevelclick": AddHandler btn.Click, AddressOf pricelevelClick
Case "keyboardsclick": AddHandler btn.Click, AddressOf keyboardsClick
End Select
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top