В чем используются параметры «объект отправителя» и «EventArgs e»?

Вопрос:В случае Page_Load, Init и других событий страницы, каковы используются эти параметры (object sender, EventArgs e)? Примеры были бы более полезными. Лучший ответ: EventArgs e - это параметр, называемый e, который содержит данные события, для получения дополнительной информации см. страницу MSDN EventArgs. Object Sender - это параметр Sender, который содержит ссылку на элемент управления/объект, который

Вопрос:

В случае Page_Load, Init и других событий страницы, каковы используются эти параметры (object sender, EventArgs e)?

Примеры были бы более полезными.

Лучший ответ:

EventArgs e – это параметр, называемый e, который содержит данные события, для получения дополнительной информации см. страницу MSDN EventArgs.

Object Sender – это параметр Sender, который содержит ссылку на элемент управления/объект, который вызвал событие.

Событие Arg Класс: http://msdn.microsoft.com/en-us/library/system.eventargs.aspx

Пример:

protected void btn_Click (object sender, EventArgs e){ Button btn = sender as Button; btn.Text = «clicked!»; }

Edit:
Когда кнопка нажата, обработчик события btn_Click будет запущен. Часть “отправитель объекта” будет ссылкой на кнопку, на которую была нажата кнопка

Ответ №1

Эти два параметра (или варианты) отправляются, по соглашению, со всеми событиями.

  • sender: объект, который поднял событие
  • e экземпляр EventArgs, включающий во многих случаях объект, который наследует от EventArgs. Содержит дополнительную информацию о событии и иногда предоставляет возможность для обработки кода событием каким-либо образом изменить событие.

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

Изучая два параметра отдельно, вот несколько примеров, где они полезны.

sender

Скажем, у вас несколько кнопок в форме. Эти кнопки могут содержать Tag, описывающие, что делать с ними. Вы можете обрабатывать все события Click одним и тем же обработчиком и в зависимости от sender делать что-то другое

private void HandleButtonClick(object sender, EventArgs e) { Button btn = (Button)sender; if(btn.Tag == «Hello») MessageBox.Show(«Hello») else if(btn.Tag == «Goodbye») Application.Exit(); // etc. }

Отказ от ответственности: это надуманный пример; не делай этого!

e

Некоторые события можно отменить. Они отправляют CancelEventArgs вместо EventArgs. Этот объект добавляет простое логическое свойство Cancel в аргументы события. Обработка кода этим событием может отменить событие:

private void HandleCancellableEvent(object sender, CancelEventArgs e) { if(/* some condition*/) { // Cancel this event e.Cancel = true; } } Ответ №2

Некоторые события можно отменить. Они отправляют CancelEventArgs вместо EventArgs. Этот объект добавляет простое логическое свойство Cancel на события args. Обработка кода этим событием может отменить событие:

Оцените статью
Добавить комментарий