Laden...

checkedListBox und die Häkchen

Erstellt von Boubou vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.427 Views
B
Boubou Themenstarter:in
18 Beiträge seit 2006
vor 15 Jahren
checkedListBox und die Häkchen

Hallo,
ich wollte eine checkedListBox wie folgt benutzen:
Ich stelle eine Frage und
ich habe n Antwort-Möglichkeiten => n Zeilen mit je einem Kästchen und einem Text
(checkedListBox erstellt, funktioniert)
nun kann der Bediener antworten: er kann eine Antwort wählen => Häkchen setzen
(erstellt, funktioniert)
ich kann die Antwort lesen und ablegen:
Antwort = checkedListBoxAuslegungAntwort.SelectedIndex;
nun komme ich zu meinem Problem:
ich wollte dem Bediener die Möglichkeit lassen, sich anders zu entscheiden, bis er mit OK-Button sagt, dies ist nun meine entgültige Antwort,
alles funktioniert, auch die nächste Frage mit anderen Antworten kann gestellt werden,
aber ein Haken : das Häkchen
entscheidet sich der Bediener für Antwort 1 => Haken bei 1, entscheidet er sich um für Antwort 2 => Haken bei 1 und 2, entscheidet er sich wiederum auf Antwort 1=> nur noch Haken bei 2.
Ich habe vieles versucht: checkedListBox.SelectedItem(index, true) bei der neuen Antwort, false dei der alten Antwort.
checkedListBox.ClearSelectedItems()....
kein Erfolg bzw. Misserfolge.
Hatte schon jemand ein ähnliches Problem.
Ziel ist es nur ein Häkchen, bei der zuletzt angewählten Antwort zu haben

😉

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Boubou,

merke dir in CheckedListBox.ItemCheck, welches Item als letztes angehakt ist. Kommt nun ein neues CheckedListBox.ItemCheck löscht du mit CheckedListBox.SetItemChecked das Häkchen. Zumindest ist so das grobe Prinzip.

herbivore

W
558 Beiträge seit 2006
vor 15 Jahren

Dafür eignen sich dann doch besser RadioButtons.
Nur dass es da halt keine RadioButtonListBox gibt, aber du kannst ja ein RadioButton-Array erstellen, dann kommt es quasi auf das selbe hinaus.

grüße
webstarg

5.299 Beiträge seit 2008
vor 15 Jahren

Ich würde da garnix checken oder radioen.
Normale Listbox nehmen, und das zum Zeitpunkt des Buttonklicks gewählte Item ist die Antwort.
Dazu Listbox.HideSelection = false stellen.

Der frühe Apfel fängt den Wurm.

B
Boubou Themenstarter:in
18 Beiträge seit 2006
vor 15 Jahren
Häkchen

Hallo Herbivore,
Danke, ich hatte ähnliches versucht,
dann habe ich deine version versucht - klappte auch nicht auf Anhieb,
aber dieses hier hat funktioniert:

        private void checkedListBoxAuslegung_MouseClick(object sender, MouseEventArgs e)
        {
            Antwort = checkedListBoxAuslegung.SelectedIndex;
            if (AntwortAlt >= 0)
            {
                checkedListBoxAuslegung.SetItemChecked(AntwortAlt, false);
            }
            AntwortAlt = Antwort;
            if (Antwort >= 0)
            {
                ClassAuslegung.Antwort = Antwort + 1;
            }
        }

Ich habe Mouse_Click als Ereignis gewählt, da es vor allen anderen Ereignissen behandelt wird.
Vielleicht hiflt dies ja dem Nächsten der sucht,
Danke und Gruß - Boubou

😉