Name

Handles Keyword

Syntax

Handles name.event
name (required; String literal)

The name of the class or object whose event the subroutine is handling

event (required; String literal)

The name of the event that the subroutine is handling

Description

Defines a procedure as the event handler for a particular event

Rules at a Glance

  • The Handler keyword is used to define event handlers for events trapped by an object defined with the WithEvents keyword.

  • The Handles keyword can only be used with a procedure declaration, since an event handler must be a procedure rather than a function.

  • The Handles keyword must be placed on the same line as, and at the end of, a procedure declaration.

Example

In a Windows application, the following definition appears in the declarations section of the Form1 class module:

Public WithEvents Button1 As Button

The Button1 object is then instantiated with a line of code like the following in the New subroutine or another initialization routine:

Me.Button1 = New Button

The Button1 object’s Click event can then be handled with a event handler like the following:

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) _
            Handles Button1.Click
   MsgBox("Hello, World!")
End Sub

Programming Tips and Gotchas

  • The WithEvents and Handles are designed to define event handlers at compile time. If you want to define event handlers dynamically at runtime, use the AddHandler and RemoveHandler statements.

  • By convention, event handlers take the form objectname ...

Get VB.NET Language in a Nutshell, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.