Иллюстрированный самоучитель по Visual Basic .NET

Все вместе

А теперь давайте объединим все сказанное на практическом примере. Создайте консольное приложение и включите следующий фрагмент в первый (стартовый) модуль:

Module Modulel
Private WithEvents anEmployee As EmployeeWithEvents
Sub Main()
Dim tom As New EmployeeWithEvents("Tom". 100000)
anEmployee = tom
Console.WriteLine(tom.TheName & "has salary " & tom.Salary)
anEmployee.RaiseSalary(0.2D) ' Суффикс D – признак типа Decimal
Console.WriteLinettom.TheName & "still has salary " & tom.Salary)
Console.WritelineC'Please press the Enter key")
Console.ReadLine()
End Sub
End Module

Теперь выберите в раскрывающемся списке метод anEmployee_SalarySecurityEvent. Исходный текст этого метода приведен ниже (для удобства чтения он разбит на несколько строк, а ключевая секция Handles выделена жирным шрифтом):

Public Sub anEmployee_SalarySecur1tyEvent(ByVal Sender As
Event_Handling_I.EmployeeWithEvents, ByValeAs System.EventArgs) Handles
anEmployee.SalarySecurityEverrt
End Sub
End Module

Обратите внимание на символ подчеркивания, добавленный VB.NET между именем переменной с ключевым словом WithEvents (anEmployee) и именем события (SalarySecurityEvent), – с ним обработчик внешне почти не отличается от процедур событий в VB6.

Также обратите внимание на идентификацию объекта Sender полным именем (в формате пространство_имен. имя_класса). Наличие дополнительных символов подчеркивания в пространстве имен объясняется тем, что пробелы в них не разрешены, поэтому VB.NET автоматически преобразует имя решения "Event Handling 1" в "Event_Handling_l" (рис. 6.3). Наконец, ключевое слово Handles сообщает исполнительной среде, какое событие обрабатывается этой процедурой.

Иллюстрированный самоучитель по Visual Basic .NET › Обработка событий и делегаты › Все вместе
Рис. 6.3. Окно свойств решения с обработкой событий

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.