Определите, кто вызывает обработчик событий

У меня есть приложение с метками, написанными для централизации при изменении его текста.

Для этого я вызываю метод через EventHandler. Я хочу использовать один и тот же метод для каждой из моих меток, но я не знаю, как определить в методе, какая метка вызывает его.

Если у меня есть такой код:

       lbl_TextChanged(object sender, EventArgs e)
        {
           ..code..
           label1.Location = new Point("label's location");
           ..more code..
        }

и я снова вызываю этот метод из другой метки, как я могу изменить этот код, чтобы узнать, какая метка вызывает его?

SOLUTION Спасибо за помощь. Это первый раз, когда я пытался что-то сделать с помощью обработчика событий и не знал, что мне нужно разыграть отправителя. Это решает мою проблему.

Спасибо за помощь!

 eyossi30 мая 2012 г., 19:59

Ответы на вопрос(2)

sender для:

Point p = ((Label)sender).Location;
// adjust p 
label1.Location = p;
Решение Вопроса

sender Объект в сигнатуре обработчика событий - это элемент управления, вызвавший событие.

Просто наведите этот объект, и вы получите доступ ко всей информации элемента управления.

Label label = sender as Label;

Вы должны быть немного осторожны с этим, так как вы предполагаете, что только элементы управления типаLabel вызывают события, которые имеют этот метод обработчика.

Ваш ответ на вопрос