Laden...

CheckBox-Problem

Erstellt von michback20 vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.582 Views
M
michback20 Themenstarter:in
13 Beiträge seit 2004
vor 19 Jahren
CheckBox-Problem

Hallo, ich habe ein Problem mit meinen 3 CheckBoxen (CB1, CB2, CB3).

Ich möchte, dass der Benutzer immer nur eine Box angeklickt haben kann. Sprich, wenn er CB3 anklickt, muss die Markierung in z.B. CB 1 verschwinden und nur CB3 markiert sein. Dieses dann eben für alle Kombinationen.

Ich habe das mit verschiedenen if abfragen und bool versucht, aber irgendwie klappt das nicht an allen Stellen....ich verstehe das nicht so richtig.

Kann mir jemand da vielleicht eine Code liefern für die 3 CheckBoxen (CB1, CB2, CB3)

Micha

P
939 Beiträge seit 2003
vor 19 Jahren

Statt CheckBoxes musst du RadioButtons (die runden CheckBoxes) verwenden. Bei allen RadioButtons in einem Panel kann immer nur einer ausgewählt sein. Platziert in einer GroupBox kann man RadioButtons mit Titel und Rahmen zusammengefasst anzeigen lassen.

H
704 Beiträge seit 2003
vor 19 Jahren

Verschoben nach Windows Forms ...

[last.fm](http://www.last.fm/user/hauptmanAlpha/)
A
196 Beiträge seit 2005
vor 19 Jahren

Kann man den Rahem auch entfernen??

A
196 Beiträge seit 2005
vor 19 Jahren

Ich verstehe das nicht 🤔
Ich habe 10 Checkboxen auf der einen Seite 5 auf der anderen 5
Beide Seiten widersprechen sich was heißt das auch nur eine Box angeklickt werden darf
Beispiel:
**Du bist **
schlau
gut
dumm
prima

auf der anderen Seite steht
**Du bist nicht **
schlau
gut
dumm
prima

Wie soll ich das machen??

N
4.644 Beiträge seit 2004
vor 19 Jahren

Lies doch nochmal bitte den Beitrag von Pulpapex.

A
196 Beiträge seit 2005
vor 19 Jahren

Ich will das aber mit Checkboxen machen weil man die per Hand deselectieren kann

N
4.644 Beiträge seit 2004
vor 19 Jahren

So wird immer nur eine CheckBox selektiert.
Die Lösung ist unschön, ich selbst würde sie nicht verwenden.

bool b = true;
// Eventhandler für alle Checkboxen
private void checkBox_CheckedChanged(object sender, System.EventArgs e)
{
	if(b)
	{
		b = false;
		foreach( Control c in groupBox.Controls )
		{
			if( c is CheckBox)
				(c as CheckBox) .Checked = false;
		}
		(sender as CheckBox).Checked = true;
		b = true;
	}
}
49.485 Beiträge seit 2005
vor 19 Jahren

Hallo alf468,

Ich will das aber mit Checkboxen machen weil man die per Hand deselectieren kann

da scheint es mir aber sinnvoller, das Verhalten der Radiobutton so zu ändern, dass man sie auch deselektieren kann. Das ist besser als stattdessen Checkboxen beizubringen, sich wie Radiobuttons zu verhalten.

Windows-Standard-konform wäre natürlich zusätzlich zu normalen Radiobuttons eine Checkbox zu verwenden. Wenn die Checkbox ohne Haken ist, sind die Radiobutton disabled (und eine etwaige Selektion wird ignoriert), wenn die Checkbox angehakt ist, werden die Radiobuttons enabled und man kann den gewünschen selektieren.

HTH

herbivore