Обработка событий в Windows Forms

GUI управляется событиями. Приложение выполняет действия в ответ на события, вызванные пользователем, например, на щелчок кнопкой мыши или выбор пункта меню. Например, у каждой формы есть код, обрабатывающий событие MouseDown (Кнопка мыши нажата). В Windows Forms применяется модель обработки событий.NET, в которой делегаты используются для того, чтобы связать события с обрабатывающими их методами. В классах Windows Forms используются групповые делегаты. Групповой делегат содержит список связанных с ним методов. Когда в приложении происходит событие, управляющий элемент возбуждает событие, вызвав делегат для этого события. Потом делегат вызывает связанные с ним методы. Для того чтобы добавить делегат к событию используется перегруженный оператор +=. Например:

this.MouseClick += new MouseEventHandler(this.Form1_MouseClick);

 

Объявление обработчика для этого события:

private void Form1_MouseClick(object sender, MouseEventArgs e) { }

В качестве параметра обработчик событий получает объект класса МоuseEventArgs (производный от класса EventArgs). Свойства этого объекта доступны только для чтения и содержат информацию, связанную с данным событием.

· Button (Кнопка) определяет, какая кнопка была нажата,

· Clicks (Щелчки) определяет, сколько раз была нажата и отпущена кнопка,

· Свойство Delta (Дельта) является счетчиком оборотов колесика мыши;

· X и Y — координаты точки, в которой находился указатель в момент нажатия кнопки мыши

 

Внесем изменения в FirstForm, чтобы при щелчке любой кнопкой мыши строка с приветствием перемещалась на место щелчка.

 

// Программа 1: Отображает перемещение приветствия по щелчку мыши.
public partial class Form1: Form {

Float x, y; // координаты

Brush pStdBrush; // Кисть

Graphics poGraphics;

public Form1() {

InitializeComponent();

x=10;

y=20;

pStdBrush = new SolidBrush(Color.Black);

poGraphics = this.CreateGraphics();

this.Text = "Программа 2";

this.Show();

poGraphics.DrawString("Hello, Window Forms", this.Font, pStdBrush, x, y);

}

private void Form1_MouseClick(object sender, MouseEventArgs e) {

x = (float)e.X; y = (float)e.Y; // координаты точки щелчка мыши

poGraphics.DrawString("Hello, Window Forms", this.Font, pStdBrush, x, y);

}

}

Параметры метода DrawString:

· выводимая строка,

· шрифт (Font— свойство класса Form, которое определяет шрифт, по умолчанию применяемый для вывода текста в форму),

· используемая кисть,

· координаты в пикселях (числа типа float (с плавающей точкой)).

В качестве стандартной кисти используется черная кисть SolidBrush.

Во время инициализации программа связывает метод Form1 _ MouseClick с событием MouseClick. Этот метод устанавливает координаты текста, х и у, равными координатам точки, в которой находился указатель в момент щелчка.

 


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



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