ПОНЯТНО О Visual Basic NET (том 3)


Первый способ обработки событий: WithEvents и Handles


Это самый простой и короткий способ.

Когда мы в режиме проектирования помещаем элемент управления на форму и хотим написать для него обработчик какого-нибудь из его событий, то VB привычным образом помогает нам получить в окне кода заготовку обработчика (3.11): в поле, расположенном в верхней левой части окна кода, мы выбираем этот элемент управления, а в поле, расположенном в верхней правой части окна кода, мы выбираем нужное событие этого элемента. А что делать, если элементы управления помещены на форму программным путем? – То же самое, но с одним маленьким предварительным дополнением в программе.

Создайте проект из одной формы, без кнопок. Введите такой код:

Dim WithEvents

 

b As New Button          'Создаем кнопку

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.Controls.Add(b)                          'Добавляем созданную кнопку в коллекцию формы

End Sub

Запустите проект. Вы видите, что на форме присутствует кнопка без надписи. Щелкните по ней – ничего не происходит.

Пояснения: Первая строка рождает кнопку, третья – размещает ее на форме. Слово WithEvents  переводится «с событиями». Имеется в виду, что здесь кнопка рождается с возможностью обработки событий. Но обработчиков мы ведь пока не написали.

В подтверждение слов о возможности обработки событий загляните в поле, расположенное в верхней левой части окна кода. Вы увидите, что там появился элемент b. Остается только выбрать в поле, расположенном в верхней правой части окна кода, нужное событие этого элемента. Выберем Click. В окне кода появится привычная заготовка процедуры-обработчика:

Private Sub b_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles b.Click

 

End Sub

Напомню, что завершается заголовок обработчика словами Handles b.Click. Слово Handles переводится «обрабатывает», выражение b.Click – это событие Click объекта b. Получается, что обработчик «обрабатывает событие Click объекта b». Наличие слова Handles заставляет процедуру запускаться в тот самый момент, когда возникает событие b.Click. Если мы сотрем слова Handles b.Click, обработчик превратится в обычную процедуру пользователя и на события реагировать не будет.




Начало  Назад  Вперед