Есть ли способ добавить обработчики событий для элементов управления в 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));

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

Другие вопросы по тегам