Wert in GuiCtrlCreateCombo nicht veränderbar

  • Hallo zusammen

    gibt es eine Möglichkeit eine Eingabe von zusätzlichen Werten im Combo Feld zu verhindern. Es sollen nur die Werte welche mit GuiCtrlSetData vorgegeben werden auswählbar sein. (Siehe Beispiel).

    Spoiler anzeigen

    #include <GUIConstantsEx.au3>

    Opt('MustDeclareVars', 1)

    Example()

    Func Example()
    Local $msg

    GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
    GUICtrlCreateButton("OK",10,50)
    GUICtrlCreateCombo("", 10, 10,100,100)

    GUICtrlSetData(-1, "Eintrag1|Eintrag2|Eintrag3", "Eintrag3")

    GUISetState() ; Zeigt das leere GUI-Fenster mit einem Bezug auf das Combosteuerelement

    ; die GUI läuft bis sie geschlossen wird
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    EndFunc ;==>Example

    Einmal editiert, zuletzt von johny1099 (9. Dezember 2010 um 19:16)

  • Ist es auch möglich die Eingabe zu verhindern im Combo Feld. Ich stelle mir das so vor, dass man nur die Einträge mit der Maus im Combo Feld auswählen kann und keine Eingabe möglich ist.

  • Das erreichst du doch mit $CBS_DROPDOWNLIST ?(

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ComboConstants.au3>
    #region - GUI Create
    GUICreate('',200,200)
    $Combo1 = GUICtrlCreateCombo("", 8, 8, 145, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Hallo|Welt", "Hallo")
    GUISetState()
    #endregion

    [/autoit] [autoit][/autoit] [autoit]

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    #endregion

    [/autoit]
  • Ich hatte in dem Script folgenden include nicht integriert.
    #include <ComboConstants.au3>

    Ich hatte nur Dim $CBS_DROPDOWNLIST eingefügt welches ein anderes Ergebnis beim Ausühren des Script's mit sich bringt. Nachdem ich den Befehl: #include <ComboConstants.au3> eingefügt habe funktioniert alles korrekt. Weiss vielleicht jemand warum Dim $CBS_DROPDOWNLIST alleine nicht ausreicht?

    Vielen Dank an alle Beteiligten die zur Lösung meines Problems beigetragen haben.