* VB-CODE (2)
Tip 144: Using Accelerator Keys with the TabStrip Control

August 31, 1995

Abstract
The TabStrip control in Microsoft=AE Visual Basic=AE does not provide 
built-in
support for using accelerator keys. This article explains how you can 
add this
functionality to your Visual Basic application.

Adding Accelerator Key Support to the TabStrip Control
The TabStrip control in Microsoft=AE Visual Basic=AE version 4.0 allows =
you 
to
present information to your user in an organized manner. The TabStrip 
control
allows you to present, or query the user for, information relating to a 
single
concept. For example, if your user must choose certain options to 
customize his
or her Visual Basic program, you could present these options by using 
one tab of
a TabStrip control. Then, on another tab, you could ask the user for 
his or her
name, company, and so on.

The user can select a tab either by pressing the TAB key to move the 
focus to
the next tab or by clicking the desired tab. Although there is no 
direct support
provided when using the TabStrip control, you can add accelerator keys 
to the
TabStrip control. This will allow your user to switch the focus between 
tabs by
pressing and holding down the ALT key and then pressing another key.
In the demonstration program below, the TabStrip control displays three 
tabs:
Control, Settings, and Parameters. Notice that an ampersand ("&") has 
been used
in the tabs' Caption property. At run time, the character immediately 
following
the ampersand will be underlined. In the example program, the Control 
tab will
be shown with the letter "C" underlined. Under the Microsoft Windows=AE 
operating
system, the underlined character tells users that they can press the 
underlined
character while holding down the ALT key to invoke that option. In this 
case,
the user would press and hold down ALT and then press C to move the 
focus to the
Control tab.

You can add this functionality to your Visual Basic program by trapping 
each key
that is pressed on the keyboard. This is done by first determining the 
ASCII
keycode value of the key that was just pressed. If this key is one of 
the keys
you want to trap (C, S, or P in our example program below), set the 
Selected
property of that tab to True. This moves the focus to that individual 
tab. On
the other hand, if the ALT key was not held down or if the key is not 
one of
the accelerator keys, no action is performed.

Example Program
This program shows how to add support for accelerator keys to the 
Visual Basic
TabStrip control.

 1. Create a new project in Visual Basic. Form1 is created by default. 
Set
    its KeyPreview property to True.
 2. Add the following code to the Form_Load event for Form1.

Private Sub Form_Load()
    TabStrip1.Tabs(1).Caption =3D "&Control"
    TabStrip1.Tabs.Add 2, , "&Settings"
    TabStrip1.Tabs.Add 3, , "&Parameters"
End Sub

 3. Add the following code to the KeyDown event for Form1.

Private Sub Form_KeyDown(keycode As Integer, shift As Integer)
    AccessKey$ =3D "CSP"
    Code% =3D InStr(AccessKey$, Chr$(keycode))
    If shift =3D vbAltMask And Code% Then
        TabStrip1.Tabs(Code%).Selected =3D True
    End If
End Sub

 4. Add a TabStrip control to Form1. TabStrip1 is created by default.

Run the example program by pressing F5. The TabStrip control is 
displayed with
three tabs setone for Control, one for Settings, and one for 
Parameters. You can
move the focus from one tab to another by pressing and holding down the 
ALT key
and then pressing the appropriate accelerator key (the underlined 
character)
for the new tab.


Return