Создаем события
Вы знаете, что у классов из библиотеки классов .NET Framework есть поля, свойства, методы и события. А как обстоят дела с классами, которые мы создавали сами? Для них мы создавали поля, свойства и методы. А события? – Их мы тоже можем создать, то есть запрограммировать. Чем и займемся в этом разделе.
Поговорим подробнее о событиях. События – это некие происшествия, которые случаются в компьютере и наступление которых наша программа может улавливать и обрабатывать в специальных процедурах – обработчиках событий. События могут вызываться разными причинами. Разобьем эти причины нестрого на три вида:
1.События могут вызываться человеком (щелчок по кнопке),
2.События могут вызываться программой.
Вот пример на два эти случая. Ниже вы видите фрагмент кода формы, обрабатывающий событие Button1_Click и в свою очередь программным способом порождающий и обрабатывающий событие изменения цвета формы Form1_BackColorChanged:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.BackColor = Color.Aquamarine
End Sub
Private Sub Form1_BackColorChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles MyBase.BackColorChanged
MsgBox("Цвет фона изменен")
End Sub
Каждая из двух процедур есть обработчик события. Первая из двух процедур обрабатывает событие, вызванное человеком, вторая обрабатывает событие, вызванное программой.
При щелчке по кнопке компьютер напечатает «Цвет фона изменен».
3.События могут вызываться системой (например, Windows или аппаратной частью компьютера. Этот случай мы рассмотрим в 22.15).
Нам пока не совсем ясно, какую пользу можно извлечь из создания собственных событий. Здесь та же ситуация, что и с переменными величинами: мы сначала научились ими пользоваться и лишь постепенно поняли всю их важность. В этом разделе мы тоже сначала научимся создавать и обрабатывать события, а затем применим их к делу в нашей программе о ловце.
Начнем мы с создания событий для элементов управления, созданных в программе, а затем займемся событиями для созданных нами классов.