Control Events
Controls on a form are represented in code as fields—one field for each control. For example, when the Visual Studio .NET Windows Forms Designer is used to add a text box to a form, the following declaration is added to the form class:
Private WithEvents TextBox1 As System.Windows.Forms.TextBox
This declaration doesn’t instantiate the control; it only defines a field that can hold a reference to a control of type TextBox. The control is instantiated in the InitializeComponent subroutine, which is called in the Form class’s constructor. The code that instantiates the control looks like this:
Me.TextBox1 = New System.Windows.Forms.TextBox( )
As discussed in Chapter 2, when a field
declaration includes the WithEvents keyword, the
parent class can handle events that the referenced object raises. To
do so, the parent class must define a handler method having the
appropriate signature, and the definition of the method must include
a Handles clause to link the method to the
appropriate event on the appropriate object. For example, here is the
definition of a handler method for the Click event of TextBox1:
Private Sub TextBox1_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles TextBox1.Click ' ... End Sub
The event-handler method can be given any name, but it is a common
convention to use a name of the form
FieldName
_
EventName. The event-handler method’s signature must correspond to the signature of the event being handled. By convention, event signatures ...