I have my app with my labels written to centralize when its text was modified.
To make that I invoke a method through an EventHandler. I want to use same method to each one of my labels, but I don´t know how to identify in the method which label invoke it.
If I have a code like this:
lbl_TextChanged(object sender, EventArgs e)
{
..code..
label1.Location = new Point("label's location");
..more code..
}
and I invoke again that method from another label, how could I modify that code in order to know which label invoke it?
SOLUTION Thanks for the help, This is the first time I tried to make something with the event handler and didn't know that I need to cast the sender. That solves my problem.
Thanks for the help!
The sender
object in the event handler signature is the control that raised the event.
Simply cast this object and you have access to all the control's information.
Label label = sender as Label;
You do need to be a little bit careful with this, since you are assuming that only controls of type Label
are raising events that have this handler method.
That's what the sender
is for:
Point p = ((Label)sender).Location;
// adjust p
label1.Location = p;
来源:https://stackoverflow.com/questions/10821688/identify-who-invokes-event-handler