vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: TextBox, ListBox & ComboBox15.05.02
Navigation in Textboxen mit der Eingabetaste

VB-Version:  VB5, VB6
 Views:  8.303 

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

 
 
Copyright ©2000-2021 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.