Checkboxen gegenseitig ausschließen

  • Hallo zusammen,


    das ist bestimmt mal wieder ganz simpel zu lösen aber ich habe derzeit leider keine Idee und finde auch im Netz nicht das richtige...


    Also ich habe 9 Checkboxen und es darf immer nur eine aktiv sein. Sobald man eine Box klickt muss der Haken aus der anderen verschwinden.
    Hier mein erster Ansatz, der ist aber nicht sehr schön da man nur von unten nach oben frei wählen kann. Andersrum sind alle Boxen gesperrt und man muss erst die oberste "frei" klicken.



    da hat doch bestimmt jemand eine bessere Lösung oder ?


    vielen Dank im voraus


    Flo

  • ist es bei den Radiobutton auch möglich mehrere zu aktivieren ?

    Nein bei GuiCtrlCreateRadio ist nur eine Auswahl innerhalb einer Gruppe (GUICtrlCreateGroup) möglich. Es sind aber mehrere Gruppen möglich. Bei Checkboxen (GUICtrlCreateCheckbox) ist dagegen Mehrfachauswahl möglich und ein Anwender ist dieses Verhalten auch gewohnt.

  • Ich erkläre mal kurz was ich vor habe damit es verständlicher wird.
    Ich bilde ein Formular ab (eine Art Fragebogen) d.h. eine GUI mit inputs edit Feldern und vielen Checkboxen.


    Bei einigen Themen ist es möglich eine Mehrfachauswahl zu treffen, bei anderen nicht. Damit das Layout gleich bleibt will ich nicht Radio und Checkboxen vermischen. Deshalb die Frage wie ich ein Radiobutton verhalten mit Checkboxen hin bekomme.
    Am Ende wird das ganze dann nach Excel exportiert.

  • Versuchs mal so

  • ist ist super, da ich aber mehrere Kategorien habe, wäre das hier eine gute Lösung oder wäre das zu cpu lastig ?



    das nächste wäre dann halt cCheckox usw.

  • Danke erstmal für Deine Hilfe, dass hat mir SEHR geholfen :)


    Das ganze gedöns soll nachher in Excel exportiert werden, das vorgehen ist auch soweit klar.


    Im folgenden schreibe ich die ControlID die gechecked ist in eine Variable damit ich nicht jede Checkbox abfragen muss.
    Nun ist es aber so, dass wenn ich die Box checke und wieder unchecke bleibt in der $status die ID von der zuvor gecheckten.


    Code
    Func _Status_din()
    For $i = 1 To UBound($din) - 1
    If $din[$i] <> @GUI_CtrlId Then GUICtrlSetState($din[$i], $GUI_UNCHECKED)
    if $din[$i] == @GUI_CtrlId Then $status = $din[$i]
    Next
    EndFunc

    hast Du evtl. dafür eine Lösung ?

  • Bei einigen Themen ist es möglich eine Mehrfachauswahl zu treffen, bei anderen nicht. Damit das Layout gleich bleibt will ich nicht Radio und Checkboxen vermischen.

    Scheiß auf das Layout, die Funktionalität zählt und mit deinem (für dich) Superlayout kommen nur dumme Fragen, denn


    ein Anwender ist dieses Verhalten auch gewohnt.

    Checkbox=Mehfachauswahl möglich, Radio=nur eine Antwort möglich. Man sollte Windowscontrols so verwenden wie sie vorgesehen sind, alles andere verunsichert nur den Anwender.

  • Scheiß auf das Layout, die Funktionalität zählt und mit deinem (für dich) Superlayout kommen nur dumme Fragen, denn

    Checkbox=Mehfachauswahl möglich, Radio=nur eine Antwort möglich. Man sollte Windowscontrols so verwenden wie sie vorgesehen sind, alles andere verunsichert nur den Anwender.

    ???




    Tweaky's antwort hat genau das Problem gelöst. Es geht jetzt lediglich um "Fine tuning" die "Funktionalität" ist auf jeden Fall gegeben.

  • NewProgger
    Wenn wir testen sollen, dann bitte mit einem funktionsfähigen Beispiel.


    ICh würde trotzdem immer alle Checkboxen abfragen. Sollte meiner Meinung nach keinen Nachteil haben.