Есть ли способ добавить обработчики событий для элементов управления в C# без использования дизайнера?
Я только недавно начал работать с C# и мне было интересно, есть ли более простой способ создания обработчиков событий для элементов управления. Например, если у меня есть кнопка в веб-форме, для которой я хочу обработчик кликов, я просто открываю конструктор и дважды щелкаю по нему, и он создается и подключается для меня. Если бы у меня не было возможности использовать дизайнер, каким другим способом было бы создать его, кроме как вручную? Например, в VB все элементы управления отображаются в раскрывающемся списке окна кода, поэтому вы можете выбрать их, выбрать событие, и оно будет отменено для вас. Есть ли что-то похожее в C# или я застрял, делая трудный путь?
4 ответа
Вы можете сделать работу, которую дизайнер делает для вас, конечно. Просто добавьте:
button1.Click += new System.EventHandler(button1_Click);
и создайте подходящий метод для вызова:
private void button1_Click(object sender, EventArgs e) { // button1 was clicked }
Что в этом такого сложного? Просто пиши
yourComponent.YourEvent += >Cursor is here<
И теперь вы должны увидеть подсказку, что, нажав [tab], вы получите реализацию метода для этого конкретного события.
Легко и приятно. Нет необходимости вообще загрязнять навигационные выпадающие списки вещами, которых там нет.;-)
Почему все предлагают новый объект EventHandler??? избыточный
button1.Click += MyHandler;
private void MyHandler(object sender, EventArgs args)
{
}
или с C# 3.0
button.Click += (sender, args) => Handler();
Вы можете использовать лямбда-выражения, если вы даже не хотите создавать функцию, если, например, обработчик событий действительно прост.
Вы можете сделать следующее:
radioButtonLeft.Click += new EventHandler((sender, e) => CallSomeMethod(1));
Это самый простой способ, который я нашел.