在面板中选中C#Foreach复选框

时间:2013-12-12 12:08:56

标签: c# checkbox foreach indexing panel

我正在尝试检查我的panel1中选中的每个复选框。然后显示在label1中检查的项目。我无法使用面板和复选框...下面是我的代码。任何建议都会很棒! 感谢

foreach (int indexChecked in panel1)
{
            str1 += panel1.Items[indexChecked].ToString() + ", ";
            label1.Visible = true;
}
        label14.Text = str1;

2 个答案:

答案 0 :(得分:11)

解决方案1:

   String str1="";
   foreach (Control c in panel1.Controls)
    {
        if((c is CheckBox) && ((CheckBox) c).Checked)                      
        str1 += c.Text+ ", "; 
    }

    str1=str1.Trim();
    str1=str1.Substring(0,str1.Length-1);
    label14.Text = str1;

解决方案2:如果您要将每个已检查的CheckBox项添加到ListView

试试这个:

   listView1.Items.Clear();
   foreach (Control c in panel1.Controls)
    {
        if((c is CheckBox) && ((CheckBox) c).Checked)                      
          listView1.Items.Add(c.Text);
    }

答案 1 :(得分:0)

如果选中复选框,您可以直接获取:

foreach (Control c in Controls.OfType<CheckBox>())
            {
                if (((CheckBox)c).Checked == true)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }