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