C# 如何在C中循环通过多个复选框#

C# 如何在C中循环通过多个复选框#,c#,checkbox,C#,Checkbox,我在winfrom中有100个复选框。 它们的名称按顺序排列,如checkbox1、checkbox2等。 我的winform中有一个提交按钮。单击“提交”按钮后,它会进行检查,如果选中复选框,则会更新某些值,否则会更新另一个值。 我必须勾选100个复选框。 因此,我必须循环通过100复选框来检查复选框是否被选中 我知道如何勾选复选框 private void sumit_button_Click(object sender, EventArgs e) { if (checkbox1.

我在winfrom中有100个复选框。 它们的名称按顺序排列,如checkbox1、checkbox2等。 我的winform中有一个提交按钮。单击“提交”按钮后,它会进行检查,如果选中复选框,则会更新某些值,否则会更新另一个值。 我必须勾选100个复选框。 因此,我必须循环通过100复选框来检查复选框是否被选中

我知道如何勾选复选框

private void sumit_button_Click(object sender, EventArgs e)
{
     if (checkbox1.Checked)
     { 
        //  update 
     }
     else
     {  
        // update another  
     }

     if (checkbox2.Checked)
     {  
        //  update    
     }
     else
     {   
        // update another  
     }

     ......................and so on

} 
但是我怎么能花100美元做这个呢

foreach(此.Controls.OfType()中的var框)
foreach (var ctrl in panel.Controls) {
    if (ctrl is CheckBox && ((CheckBox)ctrl).IsChecked) {
        //Do Something
    }
}
{ 如果(复选框) { //... } 其他的 { //... } }
类型的LINQ方法
。为什么不使用它来摆脱手动类型测试和铸造

foreach (var ctrl in panel.Controls.OfType<CheckBox>().Where(x => x.IsChecked)
{
    // ....
}
foreach(panel.Controls.OfType()中的var ctrl,其中(x=>x.IsChecked)
{
// ....
}

这是这个问题的书面答案

c#


其中row是DataRow的对象,QueryFor是sql表列的名称……

form.controls中的每个控件c。如果c是CheckBox@DanielAbouChleih-容器内是否有所有复选框?您可以考虑DATAGRID控件,而在其中可以使用复选框列和其他不可见列来保存普通LO。gic用于每个复选框。然后您可以遍历datagrid的行。要更新的数据和复选框之间是否存在任何关系,或者您是否可以创建关系?就是这样。您说的“容器中是否有所有复选框”是什么意思?容器内是指面板或组框?正确,但
as
+null检查优于
is
+强制转换(因为您只需强制转换一次)。更好的是
控件.OfType()
但为什么要问我?请注意,这是C#.NET 4代码,与旧版本不兼容。NETSomeone确实提出了它:)哎呀。。。没有注意到如何获取要在if子句中使用的复选框编号@乔尔Coehoorn@DarkenShooter你不需要它。您可以直接引用该复选框。如果你真的需要这个数字,你的设计就有问题了。
foreach (var control in this.Controls) // I guess this is your form
            {
                if (control is CheckBox)
                {
                    if (((CheckBox)control).Checked)
                    {
                        //update
                    }
                    else
                    {
                        //update another
                    }
                }
            }
foreach (var box in this.Controls.OfType<CheckBox>())
{
    if (box.Checked)
    {
        //...
    }
    else
    {
        //...
    }
}
foreach (var ctrl in panel.Controls.OfType<CheckBox>().Where(x => x.IsChecked)
{
    // ....
}
           string movie="";
           if (checkBox1.Checked == true)
            {
                movie=movie+checkBox1.Text + ",";
            }
            if (checkBox2.Checked == true)
            {
                movie=movie+checkBox2.Text + ",";
            }
            if (checkBox3.Checked == true)
            {
                movie=movie+checkBox3.Text + ",";
            }

            if (checkBox4.Checked == true)
            {
                movie = movie + checkBox4.Text + ",";
            }
            if (checkBox5.Checked == true)
            {
                movie = movie + checkBox5.Text + ",";
            }
            if (checkBox6.Checked == true)
            {
                movie = movie + checkBox6.Text + ",";
            }
          row["EnquiryFor"] = movie.ToString();