В предыдущих версиях Visual Basic существовал только один способ создания обработчика событий — разработка процедуры
Синтаксис обработчика события в предыдущих версиях Visual Basic ObjectName_EventName(Event Parameters)
Например, событие, происходящее при щелчке мышью на кнопке, которой присваивалось имя Buttonl, определялось как событие Buttonl_Click. Синтаксис событий в среде .NET Framework и определяется так: SuB EventHandlerNaine(ByVal sender As Object, ByVal e As System.EventArgs) Handles Object.Event
В предыдущих версиях Visual Basic параметры событий передавались явно. В .NET Framework параметры включены во второй параметр, который фактически представля- ет собой коллекцию. В листинге 4.20 приведен пример обработчика события Form MouseDown приложения Windows Form. Класс System. EventArgs является подклас- сом, который вводит значения координат X и Y, а также свойства кнопки, позволяющие обеспечить функциональные возможности мыши.
Обработчик событий Form MouseDovm Public Sub Forml_MouseDown(ByVal sender As Object, ByVal e As System.Windows Forms.MouseEventArgs) Dim Button As system.Windows Forms.MouseButtons Dim X As Integer Dim Y Button X = e. Y = e. End Sub As = X Y Integer e.Button
В VB.NET существует несколько методов, используемых для назначения обработчи- ков событий. Например, добавлено ключевое слово Handles, позволяющее назначать обработчики событий во время разработки. Как показано в листинге 4.21, Handles по- зволяет обрабатывать несколько различных событий с помощью одного обработчика. Об- ратите внимание, что для выполнения этой задачи все обработчики событий должны со- вместно использовать одну и ту же сигнатуру.
Общий обработчик событий
Protected Sub CommonEventHandler(ByVal sender As Object, ByVal e As System.EventArgs) Handles Buttonl.Click, Button2.Click, Forml.Click If sender Is forml Then msgbox("Form Clicked") Else msgbox(CType(sender, Button).text) End If End Sub
Ключевое слово Handles позволяет создавать обработчики событий во время разработки. Но иногда приходится это делать и во время выполнения. Для этого в VB.NET добавлены новые операторы AddHandler и RemoveHandler. Как следует из названия, оператор AddHandler используется для назначения обработчика событий тому или иному событию, а оператор RemoveHandler — для удаления созданного назначения. Ниже приведен синтаксис и примеры использования операторов AddHandler и RemoveHandler. Синтаксис операторов AddHandler и RemoveHandler: AddHandler Object.Event, Delegate RemoveHandler Object.Event, Delegate
Примеры использования операторов AddHandler и RemoveHandler:
ключевые слова AddressOf и me.EventHandler используются для создания делегата. Впервые слово AddressOf было введено в Visual Basic 5.0 для обработки вызовов API, использующих необходимые обратные вызовы. В VB.NET ключевое слово AddressOf можно применять для создания делегата любой функции, процедуры или метода.