如何在 C# 中循环遍历多个复选框

本文关键字:遍历 复选框 循环 | 更新日期: 2023-09-27 18:31:05

我在winform中有100个复选框。他们的名字是连续的,如checkbox1checkbox2等。我的 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复选框执行此操作???

如何在 C# 中循环遍历多个复选框

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 ctrl in panel.Controls) {
    if (ctrl is CheckBox && ((CheckBox)ctrl).IsChecked) {
        //Do Something
    }
}
foreach (var box in this.Controls.OfType<CheckBox>())
{
    if (box.Checked)
    {
        //...
    }
    else
    {
        //...
    }
}

有 LINQ 方法OfType 。为什么不用它来摆脱手工型式测试和铸造呢?

foreach (var ctrl in panel.Controls.OfType<CheckBox>().Where(x => x.IsChecked)
{
    // ....
}
    foreach (Control childc in Page.Controls)
    {
            if (childc is CheckBox)
            {
                CheckBox chk = (CheckBox)childc;
                //do your operation
            }
    }

这是对此的书面答案......

C#

           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();

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