An Event can have many methods attached to it. When that event is raised, all of those methods are executed. The Delegate keyword is used.
With AddHandler
and RaiseEvent
, we use Events. We use AddHandler
to attach a method to an Event instance. And RaiseEvent
causes all attached methods to run.
Here we introduce a simple module to explain events. We provide a Delegate Sub
called "EventHandler." And an Event called "_show" is an EventHandler
instance.
Main
we use the AddHandler
keyword to attach EventHandlers
to our Event. We create Delegate instances.AddressOf
to reference the Important1 and Important2 Subs as targets for the EventHandler
delegate instances.RaiseEvent
to cause an Event to be triggered (raised). The Important1 and Important2 Subs are executed.Module Module1 Delegate Sub EventHandler() Event _show As EventHandler Sub Main() ' Use AddHandler to attach two EventHandlers to Event. AddHandler _show, New EventHandler(AddressOf Important1) AddHandler _show, New EventHandler(AddressOf Important2) ' Use RaiseEvent to run all handlers for this event. RaiseEvent _show() End Sub Sub Important1() ' Do something important. Console.WriteLine("Important1") End Sub Sub Important2() ' Do something else that is also important. Console.WriteLine("Important2") End Sub End ModuleImportant1 Important2
With Events, a single entry point can invoke many methods. This is powerful. But in VB.NET we usually use Events in Windows Forms or WPF programs. Events help with GUI development.
WithEvents
Another syntax form can be used to add events in VB.NET. We can use the WithEvents
keyword and the Handles keyword on event-handlers.
With Event, AddHandler
and RaiseEvent
we develop powerful event-based approaches. The Delegate keyword helps with AddHandler
. We use it to reference methods as objects.