如何循环通过一个复选框列表,找到已检查和未检查的内容

我正试图循环通过复选框列表的项目。 如果选中它,我想设置1个值。 如果没有,我想设置另一个值。 我正在使用下面但它只给我检查项目:

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

TIA!

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

如果检查处于不确定状态,则仍将返回true。 您可能想要替换

 if (clbIncludes.GetItemChecked(i)) 

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

如果您只想包含实际检查的项目。

这将给出一个选定的列表

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

这将给出所选框的值列表(如果需要,则更改文本的值):

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

尝试这样的事情:

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

我认为最好的方法是使用CheckedItems

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

检查它在comboxlist.Items[i]为每个索引使用循环

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

我认为这可以解决你的目的

使用CheckBoxList的GetItemChecked或GetItemCheckState方法来确定是否通过索引检查项目。