VBA-Tab-Taste setzen aktuelle Registerkarte Wert im Textfeld statt der Navigation zur nächsten Kontrolle
Ich habe ein VBA-Formular (in Excel, falls jene Gegenstände), die enthält Textfelder.
Drei Gelegenheiten, die ich gefunden habe, mich drücken die tab-Taste zum wechseln zum nächsten control, sondern einen aktuellen TAB wird in das Feld text ein.
Form, die normalerweise wirkt, wie es sollte, aber es macht mich besorgt, dass dieses gremlin zeigt sich sporadisch.
Es hat sich gezeigt, die auf Microsoft Office 2003 als auch Office 2007 auf zwei verschiedenen Computern.
Hat sonst noch jemand auf dieses problem und wenn ja, wie hast du es beheben?
- Ich habe gesehen, ein ähnliches Verhalten gelegentlich ohne erkennbare Lösung. Schließen und erneuten öffnen von Excel in der Regel behebt es aber das ist nicht gerade ideal
- vereinbart. In die drei Instanzen ich erlebt, die folgenden Methoden behoben werden: 1. Klicken Sie auf eine Befehlsschaltfläche und kommen zurück zum Textfeld. (Dies war das erste mal, dass ich sah in diesem Verhalten und passiert ist, während mein Klient war eine demo geben, um seine Mitarbeiter. Er sah mich mit einem erstaunten Blick an und ich hatte keine Ahnung, wie das zu beheben hatte ich nicht gesehen. Es war ein wenig peinlich.). Interessanterweise ist es passiert, zweimal ist mir seit der demo. 2. Shift + Tab gehe zu vorigem Steuerelement 3. Schließen und öffnen Sie das Formular
- kann man den code hinter dem Formular und Textfeld, um zu sehen, was ist passiert?
- Es gibt jede Menge code hinter der form, die ich bin, mit diesem problem mit. Eine Sache, die ich vermute, die Ursache für das Problem ist, ich habe ein Change-Ereignis auf alle Felder im Formular aus. Ich werde versuchen, reduzieren Sie den code, um eine minimierte version, die zeigt das problem - das Problem ist, dass das problem schwer zu reproduzieren. Es passiert nur etwa 5% der Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, das problem zu reproduzieren 100% der Zeit durch die Einführung Excel, sofort hochziehen der form, und halten Sie die tab-Taste.
Wenn ich alle Codes in das Formular ein und speichern Sie die Arbeitsmappe, die das problem geht Weg. Werde ich Kreide diese bis zu einem fluke Kompilierungs-Fehler in VBA.
Erstellte ich ein Formular mit drei Textfeldern. Ich betrat Zeichen und Registerkarten auf die nächste, für einige Zeit, ohne in der Lage zu duplizieren problem.
Nur so bekomme ich ein tab in das Textfeld wird durch die Eingabe von Strg+Tab. Das könnte peinlich, aber die backspace -, entfernen Sie es, damit es nicht ein großes Problem. Ist es möglich, dass Sie versehentlich drücken von Strg gleichzeitig?
Finde ich gelegentlich, wenn ich mispress eine Taste, springt der cursor irgendwo anders auf dem Bildschirm. Ich bin nicht ganz sicher, was ich meine "mispress"; es scheint etwas zu tun mit dem drücken von zwei Tasten auf einmal. Dies scheint ein Merkmal der modernen Tastaturen und wie man Sie erkennt, welche Taste gedrückt wurde, denn ich habe festgestellt das auf vielen verschiedenen Computern. Die Implikation ist, dass durch mispressing ein Schlüssel, ein control character (vielleicht tab oder Strg+tab) erzeugt.
Ich habe auch versucht die folgende, die gearbeitet und kaschiert das problem, indem Sie die Registerkarte, und bewegen Sie sich auf der nächsten Kontrolle.
Als eine schnelle work-around, verwenden Sie diesen code in das Steuerelement-Exit-Ereignis.
Legen Sie die
TabKeyBehavior
EigenschaftFalse
zu bekommen "Tab springt zum nächsten Feld" Verhalten.False
für alle Textboxen. Das ist nichts, was man nicht tun konnte, direkt im designer, also warum verwenden es überhaupt nicht.Könnte dies das problem lösen: