События в Windows-приложениях
Событие – это сообщение, которое возникает в различных точкахисполняемого кода при выполнении определённых условий.События предназначены для того, чтобы иметь возможность предусмотреть реакцию программного обеспечения.
Обработчики событий не могут возвращать ничего, кроме void. В них отсутствует точка, которая могла бы служить для возврата значения. Обработчики должны принимать два параметра. Первый параметр является ссылкой на объект, который сгенерировал событие. Второй параметр должен быть ссылкой либо на базовый класс .NET System.EventArgs, либо на производный класс. Класс EventArgs представляет собой общий базовый класс для всех уведомлений о произошедших событиях. В окне свойств каждого элемента управления на вкладке событий перечислены все доступные события для этого элемента ( см. рисунок 10.9)
Рисунок 10.9 – Вкладка событий
Двойной щелчок в поле выбранного свойства перемещает нас в режим дизайна, где уже сгенерированы все объекты для обработки данного события и нам остается только написать код для метода-обработчика. На рисунке выбрано событие Click, это же событие выбирается по умолчанию при двойном щелчке на элементе управления "кнопка".
События мыши
В Интернете часто встречается шуточная программка, представляющая собой диалоговое окно с двумя кнопками. Для ответа на предлагаемый вопрос следует нажать на одну из двух кнопок, причем вторая кнопка при наведении на нее курсора начинает "убегать" от него. Вы можете встретить реализацию этой шутки, написанную на многих языках — от C до Flash-приложений. Сделаем что-то подобное на C#. Создаем новое Windows-приложение и называем его SocOpros. Из окна Toolbox перетаскиваем на форму две кнопки Button и надпись Label.
Устанавливаем свойства элементов управления и формы( см. таблицы 10.2 – 10.4)
Таблица 10.2 – Свойства формы
Form1, форма, свойство | Значение |
FormBorderStyle | Fixed3D |
Icon | Путь E:\Program Files\Microsoft Visual Studio .NET2003\Common7\Graphics\icons\Computer\W95MBX02.ICO |
Size | 344; 176 |
Text | Социологический опрос |
label1, свойство | Значение |
Size | |
Bold | true |
Location | 32; 28 |
Size | 272; 32 |
Text | Вы довольны своей зарплатой? |
Таблица 10.3 – Свойства элемента Button1 Таблица 10.4 – Свойства элемента Button2
Button1, свойство | Значение | Button2, свойство | Значение | |
Name | btnyes | Name | btnno | |
Location | 67; 92 | Location | 195; 92 | |
Text | Да | Text | Нет |
Щелкаем дважды по кнопке "Да". В обработчике этой кнопки вставляем следующий код:
private void btnyes_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Мы и не сомневались, что Вы так думаете!");
}
Выделяем кнопку "Нет". Открываем окно Properties. Переключаемся в окно событий и дважды щелкаем в поле MouseMove
В обработчике этого события связываем движение мыши с координатами кнопки и устанавливаем координаты кнопки, куда она будет возвращаться, если во время своего движения выйдет за указанную область:
private void btnno_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
btnno.Top -= e.Y;
btnno.Left += e.X;
if (btnno.Top < -10 || btnno.Top > 100) btnno.Top = 60;
if (btnno.Left < -80 || btnno.Left > 250) btnno.Left = 120;
}
Запустите приложение. Теперь, при выборе "Да" появляется окно с надписью, а при попытке нажать на кнопку "Нет" она "убегает".(см. рисунок 10.10)
Рисунок 10.10 – Результат работы программы
С событиями мыши связано большинство инструментов во многих программах, а для некоторых, например, графических, — это основа всего взаимодействия с пользователем. Другие события мыши — такие как MouseDown, MouseEnter, MouseUp — могут быть использованы для получения необычной реакции на действия пользователя в этом приложении.
Контрольные вопросы:
1.Что понимается под термином «форма»?
2.Что понимается под термином «событие»?
3.Как создать новое Windows приложение в среде .NET?
4.Как добавить новый компонент на форму?
5.Какие основные свойства и события имеет форма?
6.Какие основные свойства и события имеют элементы управления?
Дата добавления: 2015-10-26; просмотров: 871;