如何在C#中循环显示多个复选框

我在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 (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()) { if (box.Checked) { //... } else { //... } } 

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

 foreach (var ctrl in panel.Controls.OfType().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的对象,而EnquiryFor是sql表列的名称….