Rubrik: TextBox, ListBox & ComboBox | 15.05.02 |
Navigation in Textboxen mit der Eingabetaste VB-Version: VB5, VB6 | ||
Views: 8.860 |
Nehmen wir mal ein, Ihr Programm enthält ein Formular, auf dem jede Menge Textboxen sind, die ausgefüllt werden sollen. Die Navigationdurch diese Textfelder mit der Tabulator-Taste ist ja problemlos - vorausgesetzt, Sie haben den Tab-Index der einzelnen Textboxen richtigeingestellt.
Irgendwann wird aber die Frage auftauchen: Warum muss ich jedes Mal die Tabulator-Taste benutzen? Es wäre doch viel praktischer, wennich mit der Eingabetaste (oder auch OK-Taste) in das nächste Textfeld springen könnte. So bin ich das von anderen Programmen auchgewöhnt. Also setzen Sie sich hin und überlegen, wie das zu realisieren ist.
Nun - es ist nicht allzu schwer. Über das KeyPress-Ereignis und mit SendKeys müsste das doch machbar sein. Und so ist es auch:
Sub Text1_KeyPress (KeyAscii As Integer) If KeyAscii = 13 Then ' wenn Eingabetaste gedrückt SendKeys "{TAB}" ' Tabulatortaste aktivieren End If End Sub
Das funktioniert ja schon mal. Nur - immer, wenn man diese Taste drückt, steht dann zwar der Cursor im nächsten Feld aber man muss sichjedes Mal diesen lästigen Piepston anhören. Bei mehreren Textfeldern kann das ganz schön nervig sein. Also - der muss noch weg. Und dasgeht mit der folgenden kleinen Änderung im Code:
Sub Text1_KeyPress (KeyAscii As Integer) If KeyAscii = 13 Then ' wenn Eingabetaste gedrückt KeyAscii = 0 ' Piepston unterdrücken SendKeys "{TAB}" ' Tabulatortaste aktivieren End If End Sub