none
XL97 - UserForm - Focus für TextBox (=Eingabefeld) setzen RRS feed

  • Frage

  • Hallo!

    Eigentlich sollte die Aufgabe einfach sein. Eine UserForm enthält neben Schaltflächen besagte TextBox.

    Der User soll eine Eingabe tätigen (ober bewusst diese Eingabefeld leer lassen), mit Enter das Makro das dahintersteckt auslösen und unmittelbar die nächste Eingabe dort tätigen können.

    Da Tippfehler immer vorkommen muss eine Navigation über die Schaltflächen erfolgen. Und drücke ich die bekomme ich nicht den Eingabe-Fokus zurück; ich muss in die TexBox klicken. Das ist tödlich. Wie löse sich das?

    Eric March

     

    PS…

    Die TextBox ist auch sonst recht zickig. Lege ich (was intuitiv logisch wäre) das Ereignis Enter fest wird das Makro beim klicken von Schaltflächen mit ausgelöst. Welche krude Logik steckt dahinter? Mit AfterUpdate komme ich so weit einigermaßen zurecht, selbst Change entwickelt ein Eigenleben.  Wo findet eine Erklärung auf was welches Ereignis anspringt?


    Eric March • »Kenne die Vergangenheit! In der Unwissenheit über die Vergangenheit liegt das Verderben der Zukunft.«
    Donnerstag, 15. Juli 2010 06:23

Alle Antworten

  • Es scheint sich aufzulösen… (Die TextBox heißt ›Eingabe‹)

    «Eingabe_Exit(ByVal Cancel As MSForms.ReturnBoolean)» löst wohl das Eingabproblem, ein durch Versuche aktives «AutoTab» von Eingabe musste deaktiviert werden; alle Schaltflächen (überall) aber «TakeFocusOnClick» auf False.

     

    Die im PS geschilderte Problemtik aber treibt mich auf die Palme.

    Eingabe (oder genauer o.g. Exit im aktuellen Fall) wird über eine mir unbekannten Mechanismus ausgelöst. Welcher und warum/wie?

    Ich muss mir damit behelfen eine code-weite Bool-Variable zu deklarieren die von einer Schaltfläche fürs Beenden als auch UserForm_QueryClose als Flagge gesetzt wird und in Eingebe_Exit als erster Befehl im Falle von True diese Funktion mit Exti Sub faktisch abwürgt.

    Wie kann das sein, wieso muss man so einen irren Kunstgriff wählen muss um eine UserForm sauber zu beenden?


    Eric March • »Kenne die Vergangenheit! In der Unwissenheit über die Vergangenheit liegt das Verderben der Zukunft.«
    Samstag, 17. Juli 2010 11:17