如何遍历一个复选框数组

时间:2015-09-24 05:25:57

标签: c#

我正在开发一个Windows应用程序,我想知道循环查看checkBox数组的方法是什么,看它们是否被选中,并有一个消息框来显示检查的内容。

这是我正在使用的代码。

CheckBox[] myCheckBoxArray = new CheckBox[6];    
myCheckBoxArray[0] = checkBoxALL;
myCheckBoxArray[1] = checkBoxA;
myCheckBoxArray[2] = checkBoxB;
myCheckBoxArray[3] = checkBoxC;
myCheckBoxArray[4] = checkBoxD;
myCheckBoxArray[5] = checkBoxE;
foreach(var items in myCheckBoxArray)
{
    if(myCheckBoxArray.Checked)
    {
        MessageBox.Show(items);
    }
}

4 个答案:

答案 0 :(得分:2)

您可以使用linq

foreach(var checkedItem in myCheckBoxArray.Where(item => item.Checked))
{
    MessageBox.Show(checkedItem);
}

答案 1 :(得分:2)

您正在遍历myCheckBoxArray,其中items代表数组中的每个项目,因此您必须check whether the item is checked or not而不是myCheckBoxArray.Checked。所以你的代码将如下所示:

 foreach(var items in myCheckBoxArray)
  {
        if(items.Checked)
        {
           //Do your stuff here
        }
  }

答案 2 :(得分:2)

不要循环未检查的项目。

var checkeeditems=myCheckBoxArray.where(p=>p.Cheked).toList();

foreach(var Name  in checkeeditems)
{
    MessageBox.Show(Name  );
}

答案 3 :(得分:1)

在示例代码中,您循环访问mycheckboxarray,但是您正在检查myCheckBoxArray的Checked属性而不是item。您可以如下更改代码,它将为您提供所需的结果。

foreach (var checkbox in myCheckBoxArray)
        {
            if (checkbox.Checked)
            {
                MessageBox.Show("this one is checked");
            }
        }