Tab Order, Control Focus, and Alt-Keys

The tab order is used to set the order by which control gets the input focus when the
tab key is pressed. The tab order can be set by assigning values into the tabindex
property of visible controls. A control with a tabindex of zero will be
the first control that will receive the focus. The control with a tabindex
of 1 will receive the next focus. Each control will progressively receive the focus. When
the last control receives the focus, the focus is sent back to the first control again.
When an object receives the focus, the GotFocus event handler of the
control is executed. When focus is lost from a control, the LostFocus event
is triggered. The Lostfocus event can be used to test validation of entered data. If
you would like to forcibly move focus to another object, you can use the SetFocus
method of the control that you would like to move to. The label can not have a
focus.

Project 1: In this program, the tab order of four controls is
set. One of the controls has code attached to the GotFocus and LostFocus events. One of
the buttons automatically moves the focus into one of the text boxes.

To both move the focus to a control and execute the click event of the associated
control, use an & character in the caption of the control adjacent to the character
that you would like to use. Although labels cannot receive the focus, you can still set an
alt speed character in the caption. When the alt speed
character is used in the label, the next control with the following tabindex after the
label receives the focus. The click event of this control is also executed.

Project 2:
This program show you how to set the alt speed characters for a two buttons and a label.

This program will ask the user to enter his age into a text box. The user can move to
the next control only if he can enter a legal age of 10-50. Otherwise he cannot move out
of the control.

Properties:

Component

Property

Value

Text Box

name

txtAge

text

Command Button

name

cmdExit

caption

E&xit

Code:

option explicit
private sub txtAge_LostFocus()

if CInt(txtAge.caption)<10 then

txtAge.SetFocus

exit sub ' exit sub

endif

if Cint(txtAge.caption)>50 then

txtAge.SetFocus

exit sub ' exit sub

endif

end sub

private sub txtAge_KeyPress(keyascii as integer)

if Keyascii<asc("0") or keyascii>asc("9") then

keyascii=0 ' lose the character

beep ' beep

end if

endsub

private sub cmdExit_Click()

end ' exit program

end sub

Project 4:

Our next program will accept the temperature in degrees Celsius from the user and then
calculate the Fahrenheit: F=(9/5)*C+32.

Properties:

Component

Property

Value

Form

name

frm

caption

Celcius to Faherenheit

Text Box

name

txtCelcius

text

Label

name

lblFahren

caption

Command Button

name

cmdCalc

caption

&Evaluate Fahrenheit

Code:

option explicit

private sub cmdCalc_click()

lblfahren.caption = (9.0/5.0) * Cint(txtcelcius.text)+32.0 ) & "F"

end sub

Assigment #1:

Write a metric-British units program that will inter-convert either distances or
weights from British units and Metric units. Distance are measured in miles or
kilometers, and weights are measured either in pounds(lbs.) or kilograms. The conversion
factors are 2.2lbs=1Kg and 1.6km=1mile.

Assignment #2:

Write a calculator program that will perform multiplication, division, addition and
subtraction. Take a look at the Calc.exe program in windows for some ideas.