I'm confused as to the purpose of the sender
parameter in Winform controls, for example:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
I understand i can verify what sender
holds by doing something as so:
If TypeOf sender Is Label Then
'Execute some code...
End If
But is there a good reason that sender is included in every single control when it generates the sub-routine for me? In other words, i double click on a Form and i get the Private Sub form_load (sender....)
and e As System.EventArg
s.
What are some common usage of these two parameters? Are they always required?
Thank you,
Dayan D.
e
refers to the event arguments for the used event, they usually come in the form of properties/functions/methods that get to be available on it.In this example the label text property will contain the BorderColor set for the footer style of our
GridView
when its FooterRow, determined from the row sent as a property on the event arguments parameter, binds the data with the GridView DataSource.sender
contains the sender of the event, so if you had one method bound to multiple controls, you can distinguish them.For example, if you had ten buttons and wanted to change their text to "You clicked me!" when you clicked one of them, you could use one separate handler for each one using a different button name each time, but it would be much better to handle all of them at once:
For the first half of the question:
sender
is used when the callback handles multiple events, to know which object did fire the event.For example, instead of cut-and-paste the same code in two callback functions, you can have the same code managing two different button click events:
Reference here.