none
ComboBox (DropDown & DropDownList) RRS feed

  • Frage

  • Hallo

    Ich habe eine ComboBox mit DropDownStyle auf DropDownList gesetzt, damit ist nur die Auswahl aus der Liste ermöglicht.
    Die Positionierung innerhalb der Liste ist durch die Eingabe einzelner Buchstaben möglich.

    Mit der Einstellung DropDownStyle auf DropDown besteht die Möglichkeit, durch die Eingabe mehrere Buchstaben, sich
    innerhalb der Liste zu positonieren.

    Jetzt hätte ich gerne beides. Einerseits das der Anwender nur aus der Liste auswählen kann,
    anderer seits die Möglichkeit, durch Eingabe mehrer Zeichen in der Liste zu positionieren.

    Also. Wenn in der DropDown Liste enthalten ist.
    Bar
    Beer
    Behr
    Bus
    Bor
    über die Tastetur, wie im Fall von DropDownStyle= DropDown "Bu" einzugeben, sodass die Auswahl auf Bus steht
    und trotzdem nur aus der Liste übernommen werden kann.

    Weiss jemand wie das geht? Oder ob es evtl. schon etwas fertiges gibt?


    Gruss Peter


    Peter
    Freitag, 13. Mai 2011 07:42

Antworten

Alle Antworten

  • Hallo Peter,

    das tut die ComboBox von Haus aus, wenn Du
    den DropDownStyle auf DropDownList festlegst
    und AutoCompleteSource auf ListItems
    und die AutoCompleteMode Eigenschaft auf einen anderen Wert als None festlegst.

    Gruß Elmar

    Freitag, 13. Mai 2011 09:03
    Beantworter
  • Hallo Elmar

    vielen Dank. Ich wundere mich immer wieder auf's neue, wie du die Obejekte in die letzten Ecken kennst!

    Die Lösung ist fast das, was ich möchte.

    Der Benutzer kann im Combobox Textfeld schreiben was er will und verlassen.

    Ich möchte dass er die Combobox nur verlassen kann, mit einem Wert aus der Liste.

    Ich krübel noch ein bisschen darüber.

    Gruss peter


    Peter
    Freitag, 13. Mai 2011 09:26
  • Hallo Thomas

    Danke für das Stück Source.

    ich habe auch schon mal angefangen zu üben, indem ich mich in das KeyPress Event eingahängt habe.

    Ich schau nun mal wieweit ich mit deinem Schnipsel komme.

    Gruss Peter

     


    Peter
    Freitag, 13. Mai 2011 09:29
  • Hallo Peter,

    vergiss das wieder (wieso siehst Du den überhaupt? Hab den Beitrag gleich wieder gelöscht). Die Lösung von Elmar reicht völlig. Ich war der irrigen Annahme, dass DropDownList und AutoComplete nicht funktionieren. Funktioniert aber (wenn man es richtig macht).


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Freitag, 13. Mai 2011 09:32
    Moderator
  • Hallo Peter,

    wenn Du den Anwender nicht auslassen willst, so erstelle ein Validating-Ereignis.
    Wenn dort der SelectedIndex  < 0 ist, so setze e.Cancel auf True.

    Damit es nicht das Schließen des Formulars verhindert, musst Du dann auch im FormClosing reagieren:
    Validierung von Benutzereingaben in Windows Forms

    Gruß Elmar

    Freitag, 13. Mai 2011 09:39
    Beantworter
  • Hallo Thorsten,

    mit dem richtig machen ging es mir anfangs genauso - und ich hab erstmal Karsten "verarztet" -
    nur erinnerte ich mich an eine Aussage von Chris Sells (so Anno 2005)...

    ... denn leider ist das in der MSDN miserabel dokumentiert...

    Gruß Elmar

    Freitag, 13. Mai 2011 09:51
    Beantworter
  •  

    Zu dem Vorschlag von Thorsten gibt es noxh ähnliches

    http://stackoverflow.com/questions/1043661/how-can-i-force-a-dropdownlist-style-combobox-to-only-open-when-the-user-clicks-t

    >... denn leider ist das in der MSDN miserabel dokumentiert...

    Finde ich auch. Aber ist noch das beste unter viel schlechterem ;)

     

    Grüsse Peter

     

     

     

     


    Peter
    Freitag, 13. Mai 2011 10:37
  • Danke Elmar,

    ich habe mich inzwischen auch schon mal an das Validating Ereignis heran gemacht. Gut eine Bestätigung zu haben.

    Nochmals herzlichen Dank und Grüsse

    Peter


    Peter
    Freitag, 13. Mai 2011 10:39