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


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


Запишем в тело обработчика две простейшие строки:

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

        b.Text = "Нажали"

        b.Left = b.Left + 30

End Sub

Запустите проект. Щелкните по кнопке – она прыгнет направо на 30 пикселей и на ней появится надпись «Нажали».

Параметры обработчика. В нашем случае обработчику положено иметь два параметра: Первый (с именем sender) имеет тип Object и указывает на объект, с которым произошло событие (у нас это кнопка b). Второй параметр (с именем e)  указывает на объект, который должен содержать полезную информацию о событии (правда, в нашем случае это объект типа EventArgs, который такой информации, к сожалению, не содержит).

Перепишем тело обработчика:

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

        sender.Text = "Нажали"

        sender.Left = sender.Left + 30

End Sub

Действие обработчика не изменилось, однако он стал более универсальным. Теперь по какому бы подходящему объекту не щелкнули, он прыгнет направо, надо только в заголовке процедуры после Handles изменить имя b на имя этого объекта.

Мы можем из соображений удобства как угодно переименовывать оба параметра в скобках и название процедуры перед скобками, действие обработчика от этого не изменится. Можно также убрать из типа параметров лишнее упоминание пространства имен System:

Private Sub Обработчик_нажатия_на_кнопку(ByVal На_кого_нажали As Object,  _

ByVal Информация

As EventArgs) Handles b.Click

        На_кого_нажали.Text = "Нажали"

        На_кого_нажали.Left = На_кого_нажали.Left + 30

End Sub

Несколько обработчиков у одного события. Перепишите обработчик, а затем скопируйте, чуть-чуть изменив его имя и тело. Теперь у вас в коде – два обработчика:

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

        MsgBox("Сработал 1-й обработчик")

End Sub

 

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




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



Книжный магазин