Вопрос по winforms, c#, windows-ce, visual-studio-2008, event-handling – Определите, кто вызывает обработчик событий

1

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

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

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

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

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

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

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

дублироватьstackoverflow.com/questions/1506815/… eyossi

Ваш Ответ

2   ответа
1

sender для:

Point p = ((Label)sender).Location;
// adjust p 
label1.Location = p;
3

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

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

Label label = sender as Label;

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

Похожие вопросы