我在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复选框做这个???
答案 0 :(得分:7)
foreach (var control in this.Controls) // I guess this is your form
{
if (control is CheckBox)
{
if (((CheckBox)control).Checked)
{
//update
}
else
{
//update another
}
}
}
答案 1 :(得分:5)
foreach (var ctrl in panel.Controls) {
if (ctrl is CheckBox && ((CheckBox)ctrl).IsChecked) {
//Do Something
}
}
答案 2 :(得分:2)
foreach (var box in this.Controls.OfType<CheckBox>())
{
if (box.Checked)
{
//...
}
else
{
//...
}
}
答案 3 :(得分:2)
有LINQ方法OfType
。为什么不用它来摆脱手动型式测试和铸造呢?
foreach (var ctrl in panel.Controls.OfType<CheckBox>().Where(x => x.IsChecked)
{
// ....
}
答案 4 :(得分:1)
foreach (Control childc in Page.Controls)
{
if (childc is CheckBox)
{
CheckBox chk = (CheckBox)childc;
//do your operation
}
}
答案 5 :(得分:0)
这是这个的答案................
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 table column ....的名称。