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 haben, dann erscheint ein breiterer Rahmen um die Beschriftung.
Abbildung
31:
|
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.
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 Steuerelement 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.
|
TabIndex
vor |
TabIndex
nach |
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.
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.