Есть ли способ добавить обработчики событий для элементов управления в C # без использования дизайнера? - PullRequest
3 голосов
/ 30 октября 2009

Я только недавно начал работать с c #, и мне было интересно, есть ли более простой способ создания обработчиков событий для элементов управления. Например, если у меня есть кнопка в веб-форме, для которой я хочу обработчик кликов, я просто открываю конструктор и дважды щелкаю по нему, и он создается и подключается для меня. Если бы у меня не было возможности использовать дизайнер, каким другим способом было бы создать его, кроме как вручную? Например, в VB все элементы управления отображаются в раскрывающемся списке окна кода, поэтому вы можете выбрать их, выбрать событие, и оно будет отменено для вас. Есть ли что-то похожее в c # или я застрял, делая трудный путь?

Ответы [ 4 ]

7 голосов
/ 30 октября 2009

Вы можете делать работу, которую дизайнер делает для вас, конечно. Просто добавьте:

button1.Click += new System.EventHandler(button1_Click);

и создайте подходящий метод для вызова:

private void button1_Click(object sender, EventArgs e) { // button1 was clicked }
4 голосов
/ 30 октября 2009

Что в этом такого сложного? Просто напишите

yourComponent.YourEvent += >Cursor is here<

И теперь вы должны увидеть подсказку, что, нажав [tab], вы получите реализацию метода для этого конкретного события.

Красиво и просто. Нет необходимости вообще загрязнять навигационные выпадающие списки вещами, которых там нет. ; -)

2 голосов
/ 30 октября 2009

Почему все предлагают новый объект EventHandler ??? Резервные

button1.Click += MyHandler;

private void MyHandler(object sender, EventArgs args)
{
}

или с C # 3.0

button.Click += (sender, args) => Handler();
1 голос
/ 30 октября 2009

Вы можете использовать лямбда-выражения, если вы даже не хотите создавать функцию, если, например, обработчик событий действительно прост.

Вы можете сделать следующее:

radioButtonLeft.Click += new EventHandler((sender, e) => CallSomeMethod(1));

Это самый простой способ, который я нашел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...