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

Bil*_*tin 21 .net c# checkboxlist

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

foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
    MarkVehicle(myRow);
}
Run Code Online (Sandbox Code Playgroud)

TIA!

Con*_*tra 32

这将给出一个选定的列表

List<ListItem> items =  checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).ToList();
Run Code Online (Sandbox Code Playgroud)

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

var values =  checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).Select(n => n.Value ).ToList()
Run Code Online (Sandbox Code Playgroud)


Rob*_*rth 26

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

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

if (clbIncludes.GetItemChecked(i))
Run Code Online (Sandbox Code Playgroud)

if (clbIncludes.GetItemCheckState(i) == CheckState.Checked)
Run Code Online (Sandbox Code Playgroud)

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


Jas*_*onS 22

尝试这样的事情:

foreach (ListItem listItem in clbIncludes.Items)
{
    if (listItem.Selected) { 
        //do some work 
    }
    else { 
        //do something else 
    }
}
Run Code Online (Sandbox Code Playgroud)