ComboBox bei Focussierung öffnen...



  • Hi,
    ich habe eine Form mit mehreren Eingabemöglichkeiten, die der Reihe nach durch die Tab Taste anvisiert werden. Unter anderem habe ich eine ComboBox, die, sobald sie den Focus hat, geöffnet werden soll.
    Ich hab das jetzt mit dem onEnter Event gelöst, in dem ich droppedDown auf true gesetzt habe. Das funktioniert soweit auch, wenn ich allerdings jetzt mit der Maus versuche die ComboBox zu öffnen und diese jetzt nicht den Focus hat, klappt sie sofort wieder zu und bleibt erst beim 2ten Click geöffnet.

    Wie kann ich diesen Umstand korrigieren? Hat jemand eine Idee?
    Danke für euer Interesse...

    MFG
    Dappeljuh



  • 😞

    hat keiner ne Idee?



  • Gibt es vielleicht ein anderes Event welches nur ausgelöst wird, wenn ich mit der Tastatur zur comboBox springe?

    Oder gibt es die Möglichkeit rauszufinden ob der Focus durch die Maus ODER die Tastatur bezogen wurde?

    Wäre für jeden Hinweis dankbar...

    MFG
    Dappeljuh



  • Stell die Box nicht die Möglichkeit zur Verfügung abzufragen ob sie aufgeklappt ist ? (Nie geanken darum gemacht, wenn ich per Tastatur ne Combobx anspringe geht diese i.d.R. mit Cursor Down auf, Fände es sehr nervig wenn die von alleine aufspringt).



  • Fände es sehr nervig wenn die von alleine aufspringt).

    Da würde ich dir bei anderen Projekten durchauszustimmen...aber in diesem Fall macht das durchaus Sinn.

    Wie ich oben bereits erwähnte ist droppedDown eine Eigenschaft der ComboBox, die angibt ob sie bereits geöffnet ist. Da ich diesen Zustand ja erzwinge, indem ich sie auf true setze, klappt sie ja auch auf.

    Ich denke das Problem liegt im onEnterEvent, meinst du nicht auch?
    Nur fällt mir keine andere Möglichkeit ein, wie ichs sonst machen soll... 🙄

    thx
    Dappeljuh



  • private: System::Void comboBox2_Enter(System::Object^  sender, System::EventArgs^  e) {
    				 comboBox2->DroppedDown = true;
    			 }
    	private: System::Void comboBox1_Enter(System::Object^  sender, System::EventArgs^  e) {
    				 comboBox1->DroppedDown = true;
    			 }
    

    Verhält sich absolut richtig. Beachte bitte, das bei geöffneter Combobox ein Mausklick zum schliessen der Box verwendet wird.



  • Der Fehler tritt nur auf, wenn man auf den DropDownButton klickt. (Das DropDown Ereignis wird halt 2x ausgelöst...)

    Habs dämlicherweise nicht gecheckt...

    Jetzt klappts aber, ist vielleicht nicht ganz so elegant, aber es funktioniert!

    Meine Lösung:
    bool MouseEnter = false;

    //MouseEnter Event:

    MouseEnter = true;

    //MouseLeave Event

    Mouse Enter false;

    //comboBoxEnter Event

    if(MouseEnter == false)
    {
    comboBox->DroppedDown = true;
    }

    Falls jemand doch noch was einfacheres weiss, man her damit 😉

    thx
    Dappeljuh


Anmelden zum Antworten