Der Fokus

Wenn ein Objekt über den Fokus verfügt, kann es Eingaben des Benutzers über die Maus oder Tastatur annehmen. Auf der Microsoft Windows-Oberfläche können mehrere Anwendungen parallel ausgeführt werden, aber nur die Anwendung, die den Fokus hat, verfügt über eine aktive Titelleiste und kann Eingaben des Benutzers empfangen.
In einem Visual Basic-Formular mit mehreren Textfeldern zeigt nur das Textfeld mit dem Fokus den über die Tastatur eingegebenen Text an.

Die Ereignisse GotFocus und LostFocus werden ausgelöst, wenn ein Objekt den Fokus erhält oder abgibt. Formulare und die meisten Steuerelemente unterstützen diese Ereignisse.

Ereignis

Beschreibung

GotFocus

Tritt ein, wenn ein Objekt den Fokus erhält. 

LostFocus

Tritt ein, wenn ein Objekt den Fokus abgibt. Eine LostFocus-Ereignisprozedur wird hauptsächlich zum Überprüfen und zum Auswerten von Eingaben oder zum Umkehren oder Ändern von Zuständen verwendet, die Sie in der GotFocus-Prozedur des Objekts herbeigeführt haben.

Ein Objekt kann den Fokus folgendermaßen erhalten:

ˇ     Auswählen eines Objekts zur Laufzeit.

ˇ     Verwenden einer Zugriffstaste, um das Objekt zur Laufzeit auszuwählen. 

ˇ     Verwenden der SetFocus-Methode im Code: Steuerelementname.SetFocus

Bei manchen Objekten können Sie erkennen, dass sie den Fokus erhalten haben. Wenn z.B. Befehlsschaltflächen den Fokus ha­ben, dann erscheint ein breiterer Rahmen um die Beschriftung.

Abbildung 31:  
Eine Befehlsschaltfläche mit erhaltenem Fokus

Ein Objekt kann nur dann den Fokus erhalten, wenn die zugehörigen Eigenschaften Enabled und Visible den Wert True haben. Mit der Enabled-Eigenschaft kann das Objekt auf die vom Benutzer ausgelösten Ereignisse (z.B. Tastatur- und Mausereignisse) reagieren. Die Visible-Eigenschaft bestimmt, ob Objekt auf Bildschirm sichtbar ist.

Anmerkung   Rahmen, Bezeichnungsfelder, Menüs, Linien, Figuren, Anzeige-Steuerelemente und Zeitgeber können den Fokus nicht erhalten. Ein Formular kann den Fokus nur erhalten, wenn es keine Steuerelemente enthält, die den Fokus erhalten können.

Festlegen der Aktivierreihenfolge

Die Aktivierreihenfolge ist die Reihenfolge, in der der Fokus durch das Betätigen der TAB-TASTE von einem Steuerelement zum nächsten bewegt wird. Jedes Formular besitzt seine eigene Aktivierreihenfolge. Normalerweise stimmt die Aktivierreihenfolge mit der Reihenfolge überein, in der die Steuerelemente erstellt wurden.

Angenommen, Sie erstellen zwei Textfelder (Text1 und Text2) und dann eine Befehlsschaltfläche (Command1). Wenn die Anwendung gestartet wird, hat Text1 den Fokus. Durch Betätigen der TAB-TASTE springt der Fokus von einem Steuerelement zum nächsten, in der Reihenfolge, in der die Steuerelemente erstellt wurden (Abb. 32).

Abbildung 32   Beispiel zur Aktivierreihenfolge

Um die Aktivierreihenfolge für ein Steuer­element zu ändern, müssen Sie die TabIndex-Eigenschaft festlegen. Die TabIndex-Eigenschaft eines Steuerelements legt dessen Position in der Aktivierreihenfolge fest. Standardmäßig besitzt das zuerst erstellte Steuerelement einen TabIndex-Wert von 0, das zweite einen TabIndex-Wert von 1 usw.
Wenn Sie die Position eines Steuerelements in der Aktivierreihenfolge ändern, dann numeriert Visual Basic die Positionen der anderen Steuerelemente neu, damit die Reihenfolge nach eventuellen Einfügungen und Löschvorgängen wieder aktuell ist. Wenn Sie z.B. Command1 in der Aktivierreihenfolge an die erste Stelle setzen, werden die TabIndex-Werte für die übrigen Steuerelemente automatisch erhöht, wie die folgende Tabelle zeigt.


Steuerelement

TabIndex vor
der Änderung

TabIndex nach
der Änderung

Text1

0

1

Text2

1

2

Command1

2

0

Die höchste TabIndex-Einstellung ist immer um Eins kleiner ist als die Anzahl der Steuerelemente in der Aktivierreihenfolge (da die Numerierung bei 0 beginnt). Selbst wenn Sie die TabIndex-Eigenschaft auf einen Wert setzen, der größer als die Anzahl der Steuerelemente ist, ändert Visual Basic diesen Wert auf die Anzahl der Steuerelemente minus 1.

Anmerkung   Steuerelemente, die nicht den Fokus erhalten können, sowie gesperrte und unsichtbare Steuerelemente besitzen keine TabIndex-Eigenschaft und sind in die Aktivierreihenfolge nicht einbezogen. Wenn ein Benutzer die TAB-TASTE drückt, werden diese Steuerelemente übersprungen.

Entfernen eines Steuerelements aus der Aktivierreihenfolge

Gewöhnlich kann jedes Steuerelement in der Aktivierreihenfolge zur Laufzeit durch Drücken der TAB-TASTE ausgewählt werden. Sie entfernen ein Steuerelement aus der Aktivierreihenfolge, indem Sie die zugehörige TabStop-Eigenschaft auf False (0) setzen.

Ein Steuerelement, dessen TabStop-Eigenschaft den Wert False hat, behält seine Position in der eigentlichen Aktivierreihenfolge bei, auch wenn das Steuerelement übersprungen wird, wenn Sie sich mit der TAB-TASTE durch die Steuerelemente bewegen.

Anmerkung   Eine Optionsfeldgruppe besitzt nur ein einziges Element in der Aktivierreihenfolge. Die TabStop-Eigenschaft der ausgewählten Schaltfläche (d.h. die Schaltfläche, deren Wert auf True gesetzt wurde) wird automatisch auf True gesetzt. Die TabStop-Eigenschaft der anderen Optionsfelder in der Gruppe wird auf False gesetzt.