ISM 3253 Topics 2: Form, Control,
Event
Program Elements
Assignment Operations
Events & Event Procedures
Properties
Tab Order and Access Keys
Save Files
Review: Visual Studio &
Programming
A computer program consists of instructions
readable by the computer which direct its
operations
In modern development, programs begin as
instructions readable by (trained) humans…
…And end up as instructions readable by the
computer
Review: Visual Studio &
Programming (cont.)
Programs consist of many parts …
Visual Studio and Visual Basic support:
Authoring the component parts of the programs
Managing the program parts
Converting the parts you write into machine readable
format
Combining the parts you write with a huge collection
of pre-written instructions
Other tasks
Projects
Projects may consist of many parts
Solution—multiple programs
developed together
SOLUTION
We will not use this
PROJECT
Project—one program (Program)
All elements
are optional… FORM CLASS MODULE MISC.
…but it must
have at least
one
Projects—Forms
Forms provide the
visual interface for a
program
Forms contain
Controls
Properties
Methods
Events with code
Non-event code
Controls also contain Properties, Methods, and Event
Code
Assignment Operations (Our
First Code)
A common code involves assigning a value to
a container
Container = Value
Both Container and Value can be
Property
Variable
Object
In this use the equal sign is the assignment
operator
Assignment Operations (cont.)
Examples
intQuantity = 123
places the value 123 into the variable intQuantity
stLastName = “Jones”
places the value “Jones” into the variable stLastName
lblLastName.Text = stLastName
places the contents of the variable stLastName
(whatever they are) into the Text property of the label
control lblLastName
Events
Forms, Controls, and Classes recognize events
Events are predefined (or programmer defined)
actions against an object
If the action occurs…
And if there is code written for the event…
Then the code will execute
Three kinds of events for forms and controls
Commonly used
Less commonly used
Almost never used
Events (cont.)
Our first event—The Click Event for a button
lblTransfer txtTransfer cmdTransfer
Private Sub cmdTransfer_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cmdTransfer.Click
'***************************************************************
'* Places the contents of the txtTransfer text box
'* into the lblTransfer label text property
'***************************************************************
lblTransfer.Text = txtTransfer.Text
End Sub
Events (cont.)
Line continuation character
Name of the event procedure
Event Arguments
Private Sub cmdTransfer_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cmdTransfer.Click
Control and event that triggers the code
Event Arguments are created automatically and are only used for advanced
purposes
The procedure name and Handles expression are also created automatically
The event procedure header (what we are seeing here) is actually created
as one long line
Use the line continuation character to break it into two physical lines
But still treated as one logical line
Creating Event Procedures—
Default Events
Double-clicking a control or form in design view
creates the template for the default event
Form: Load event
Button: Click event
Text Box: TextChanged event
Label: Click event
Check Box & Radio Button: CheckChanged event
Combo Box & List Box: SelectedIndexChanged
Date Time Picker: ValueChanged event
NumericUpDown: ValueChanged event
Creating Event Procedures—
Other Events
The at the top left corner of the code window
is a drop-down list of all objects on the form
Select the object whose event you want to program
Creating Event Procedures—
Other Events
The right side of the code window contains a list of all
events supported by form/control selected in the left box
Selected Object (left side)
Supported Events (right side)
Selecting an event will create the event code
template for that control and event combination
Creating Event Procedures—
Other Events
There can be a dizzying variety of events
supported for most objects
Most are for events so obscure that you
would never use them
Some are incredibly useful and you should
learn these over time
Event Procedures—Multiple
Events
You will often want the same code to run for
multiple events and/or controls
Add the control/event combination to the
Handles expression
Private Sub txtTransfer_GotFocus …
Handles txtTransfer.GotFocus, _
txtTransfer.Click, txtTest.GotFocus, txtTest.Click
<Event Code>
End Sub
Event Procedures—Multiple
Events (cont.)
Private Sub txtTransfer_GotFocus(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles txtTransfer.GotFocus, _
txtTransfer.Click, txtTest.GotFocus, txtTest.Click
'***************************************************************
'* Handles the GotFocus and Click events of all text boxes on
'* the form.
'* Automatically selects the contents of the text box so that
'* text can be replaced by typing
'***************************************************************
'* Create a text box object
Dim theTextBox As TextBox
'* Set the object to the control that triggered the event
theTextBox = sender
'* Select the text in the text box
theTextBox.SelectionStart = 0
theTextBox.SelectionLength = theTextBox.Text.Length
End Sub
Properties
Visual design elements (forms and controls)
have properties that
Control their behavior
Determine their appearance
Interact with the user
Properties may be set at…
Design time
Run time
In code
With user interaction
Both Design & Run Time
Design Time Properties
Selecting an object in form
design mode gives access to
the object’s properties in the
properties window
These properties will be the
default properties when a form
is first created
Changes implemented in code
or by user interaction will persist
as long as the form is open or
until they are changed again
Name Property
Every object has a Name property that
controls how your object is addressed in code
If the object is addressed in code you must
rename your object to indicate its:
Type (use a prefix)
Purpose of use (rest of the name) --
(e.g.txtTransfer) first-letter Capital
You need not rename labels that are not
addressed on code
Name Property (cont.)
Examples:
lblLastName label
btnCancel or cmdCancel button
txtStreetAddress text box
dtpBirthDate date time picker
cboStyle combo box
lstDepartment list box
chkActive check box
rdoMaritalStatus radio button
frmCustomer form
Important Form Properties
Accept Button—button whose code will execute
if the Enter key is pressed
Cancel Button—button whose code will execute
if the Escape key is pressed
Text*—displays in the title bar
ControlBox*, FormBorderStyle, Maximize* &
Minimize* Buttons
StartPosition—where form will initially load
Size—Width & Height of the form
* Removing these will give a form with no title bar
Common Control Properties
Text—what is displayed in the control
Left / Top—coordinates in pixels from the upper
left corner of the form for the location of the upper
left corner of the control
Width / Height—size in pixels of the control
Enabled—Control is always visible but can be
toggled to active or inactive & dimmed
Visible—Control is visible or not
TabIndex—sequence of the control in the form’s
tab order
Key Interaction Control Value
Properties
Text Box—Text
Check Box—Checked
Radio Button—Checked
Combo Box & List Box—Text, SelectedIndex,
SelectedText
Date Time Picker—Value
Reading & Setting Properties
in Code
Properties may be read and set in code by
referring to them on the appropriate side of
an assignment operator (equal sign)
Private Sub cmdTransfer_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cmdTransfer.Click
'***************************************************************
'* Places the contents of the txtTransfer text box
'* into the lblTransfer label text property
'***************************************************************
lblTransfer.Text = txtTransfer.Text
End Sub
Properties in Code
Private Sub btnCatchMe_MouseMove(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnCatchMe.MouseMove
'***************************************************************
'* What is going on here????
'***************************************************************
If Now.Second < 55 Then
If Now.Second < 30 Then
btnCatchMe.Top = 20
Else
btnCatchMe.Top = Me.Height - btnCatchMe.Height - 30
End If
If Now.Second Mod 2 = 1 Then
btnCatchMe.Left = 20
Else
btnCatchMe.Left = Me.Width - btnCatchMe.Width - 20
End If
End If
End Sub
Getting Stupid with Properties
You can do VERY stupid with appearance
properties
BackColor
ForeColor
Font
Experiment and get it out of your system
Then stick with the defaults for your work in
this class
Setting Tab Order
After the form is complete there is an easy to
set the whole form’s tab order sequence
Select View | Tab Order from the menu
Click box by each control in the tab order you want
If you screw it up start over
Set individual control Tab Stop properties to False
to exclude from the tab order
Setting Access Keys
Putting an “&” in the Text property of a control
makes the following letter the hot key for the
control.
Gives control focus if Alt-Letter is pressed
Executes button if it is a button’s Access key
Text boxes have no permanent Text property
Set the hot key in a label that immediately precedes the
text box in the form’s tab order
Labels cannot get focus but focus will shift to the text box
The Invoice Total form
Three types of controls
A label displays text on a form.
A text box lets the user enter text on a form.
A button initiates form processing when clicked.
A form after some controls have been added to it
A form after the properties have been set
Event Procedures—Multiple
Events
Private Sub txtTransfer_GotFocus(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles txtTransfer.GotFocus, _
txtTransfer.Click, txtTest.GotFocus, txtTest.Click
'***************************************************************
'* Handles the GotFocus and Click events of all text boxes on
'* the form.
'* Automatically selects the contents of the text box so that
'* text can be replaced by typing
'***************************************************************
'* Create a text box object
Dim theTextBox As TextBox
'* Set the object to the control that triggered the event
theTextBox = sender
'* Select the text in the text box
theTextBox.SelectionStart = 0
theTextBox.SelectionLength = theTextBox.Text.Length
End Sub
The Solution Explorer as a form file is being
renamed
How to rename a file, project, or solution
Right-click on it in the Solution Explorer window and select the
Rename command from the shortcut menu. Or, select it in the
Solution Explorer and press F2. Then, you can enter the new
name.
Be sure NOT to change or omit the file extension when you
rename a file.
Remember too that using a three-letter prefix to indicate the
contents of the file (like frm for a form file) makes it easier to
tell what each file represents.
When you change the name of a form file, Visual Studio will
also change the Name property for the form and update any
references within the existing code for the form.
How to save a file, project, or solution
You can use the Save All button in the Standard toolbar or the
Save All command in the File menu to save all files and projects
in the solution.
You can use the Save button in the Standard toolbar or the Save
command in the File menu to save a file, project, or solution. The
files that are saved depend on what’s selected in the Solution
Explorer window.
If a single file is selected, just that file is saved.
If a project is selected, the entire project and its solution are
saved.
If a solution is selected, the entire solution and all its projects
are saved.
If you try to close a solution that contains modified files, a dialog
box is displayed that asks you if you want to save those files.