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. Этот метод устанавливает координаты текста, х и у, равными координатам точки, в которой находился указатель в момент щелчка.