Некоторые часто используемые события среды Visual Studio.NET

Для каждого элемента управления Windows - приложений определен свой набор событий, на которые он может реагировать. Заготовка шаблона обработчика события формируется двойным щелчком на поле, расположенном справа от имени соответствующего события на странице Events окна Properties для выбранного элемента управления.

Наиболее часто используемыми событиями для элементов управления являются следующие:

Click, DoubleClick – одинарный или двойной щелчок мышки;

KeyDown, KeyUp – нажатие и отпускание любой клавиши и их сочетаний;

KeyPress – нажатие клавиши, имеющей ASCII-код;

MouseDown, MouseUp – нажатие и отпускание кнопки мыши;

MouseMove – перемещение мыши;

Paint – возникает при необходимости прорисовки формы.

Например, если «Кликнуть» на кнопку, расположенную в окне нашей формы, то будет сформирован обработчик этого события со следующим заголовком:

private void button1_Click(object sender,
EventArgs e).

Если нам необходимо обрабатывать событие, связанное с двойным нажатием кнопки мышки в пределах формы, то в «событиях» формы необходимо дважды «Кликнуть» на поле, расположенное справа от события MouseDoubleClick при этом появится шаблон обработчика этого события со следующим заголовком: private void Form1_MouseDoubleClick(object sender, MouseEventArgs e).

В качестве примеров приводим шаблоны еще двух обработчиков событий:

private void textBox1_KeyDown(object sender, KeyEventArgs e)

private void Form1_MouseClick(object sender, MouseEventArgs e)

Попробуйте определить сами, когда они формируются?

Анализируя шаблоны обработчиков событий можно отметить общую закономерность – у всех шаблонов два формальных параметра, причем первый (object sender) у всех одинаковый.

Во многих учебниках по программированию на языке C# при пояснении механизма работы события используется модель «публикация – подписка», в которой один класс, являющийся отправителем сообщения (sender), публикует сообщение, а другие классы, являющиеся получателями сообщения (receivers), подписываются на получение этих сообщений.

В соответствии с этой терминологией первый формальный параметр всех обработчиков сообщений sender типа object (класс object является базовым любого класса языка C#) является отправителем сообщения (иногда говорят – источником сообщения).

Второй формальный параметр шаблонов обработчиков событий является переменной типа объект точнее ссылкой на объект класса ХХХEventArgs, который содержит связанные с событием параметры (фактически сообщение), например, для обработчиков мышки можно получить координаты e.X e.Y курсора мышки. Класс ХХХEventArgs (ХХХ имя события) во всех стандартных событиях является наследником системного класса EventArgs.

При описании модели «публикация – подписка» отмечалось, что получатели сообщений (receivers), подписываются на получение этих сообщений. То есть для элементов управления и формы необходимо указывать (подписывать) сообщения, на которые должен реагировать этот элемент. Поскольку все методы обработчиков событий имеют единый формат записи, то их можно объединять (подписывать) с помощью многоадресных делегатов – делегатов, способных указывать на любое количество функций. Для каждого элемента в файле Form1.Designer.cs, в разделе инициализации помимо определения свойств элементов управления, определяется перечень событий, на которые должен реагировать этот элемент управления. Например, фрагмент инициализации формы с определением перечня событий, на которые она должна реагировать, имеет следующий вид:

private void InitializeComponent()

{

...

this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler

(this.Form1_MouseDoubleClick);

this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

this.MouseClick += new System.Windows.Forms.MouseEventHandler

(this.Form1_MouseClick);

this.MouseMove += new System.Windows.Forms.MouseEventHandler

(this.Form1_MouseMove);

....

}

Необходимо отметить, что все визуальные элементы управления произошли от класса Control, в котором представлены наиболее важные для работы события.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: