21 Stimmen

Wie kann man eine Checkbox-Liste in einer Schleife durchlaufen und herausfinden, was angekreuzt und nicht angekreuzt ist?

Ich versuche, in einer Schleife durch die Elemente einer Checkbox-Liste zu gehen. Wenn es markiert ist, möchte ich einen Wert setzen. Wenn nicht, möchte ich einen anderen Wert setzen. Ich habe das unten stehende verwendet, aber es gibt mir nur angekreuzte Elemente:

foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
    MarkVehicle(myRow);
}

32voto

Contra Punkte 2726

Dies ergibt eine Liste der ausgewählten

List<ListItem> items =  checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).ToList();

So erhalten Sie eine Liste der Werte der ausgewählten Felder (ändern Sie "Wert" in "Text", wenn Sie dies wünschen):

var values =  checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).Select(n => n.Value ).ToList()

28voto

Robert C. Barth Punkte 21461
for (int i = 0; i < clbIncludes.Items.Count; i++)
  if (clbIncludes.GetItemChecked(i))
    // Do selected stuff
  else
    // Do unselected stuff

Wenn sich die Prüfung in einem unbestimmten Zustand befindet, wird trotzdem true zurückgegeben. Möglicherweise sollten Sie

if (clbIncludes.GetItemChecked(i))

mit

if (clbIncludes.GetItemCheckState(i) == CheckState.Checked)

wenn Sie nur die tatsächlich geprüften Elemente einbeziehen wollen.

23voto

JasonS Punkte 22820

Versuchen Sie so etwas:

foreach (ListItem listItem in clbIncludes.Items)
{
    if (listItem.Selected) { 
        //do some work 
    }
    else { 
        //do something else 
    }
}

2voto

iviorel Punkte 312

Ich denke, der beste Weg, dies zu tun, ist die Verwendung von CheckedItems :

 foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
 {
     // use objDataRowView as you wish                
 }

1voto

sameer sharma Punkte 11

Prüfen Sie es mit einer Schleife für jeden Index in comboxlist.Items[i]

bool CheckedOrUnchecked= comboxlist.CheckedItems.Contains(comboxlist.Items[0]);

Ich denke, es erfüllt Ihren Zweck

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X