4

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個のチェックボックスでこれを行うことができますか???

4

6 に答える 6

8
foreach (var control in this.Controls) // I guess this is your form
            {
                if (control is CheckBox)
                {
                    if (((CheckBox)control).Checked)
                    {
                        //update
                    }
                    else
                    {
                        //update another
                    }
                }
            }
于 2013-09-13T05:15:09.700 に答える
5
foreach (var ctrl in panel.Controls) {
    if (ctrl is CheckBox && ((CheckBox)ctrl).IsChecked) {
        //Do Something
    }
}
于 2013-09-13T05:10:13.567 に答える
2

LINQメソッドがありOfTypeます。手動の型テストとキャストを取り除くためにそれを使用しないのはなぜですか?

foreach (var ctrl in panel.Controls.OfType<CheckBox>().Where(x => x.IsChecked)
{
    // ....
}
于 2013-09-13T05:17:06.680 に答える
2
foreach (var box in this.Controls.OfType<CheckBox>())
{
    if (box.Checked)
    {
        //...
    }
    else
    {
        //...
    }
}
于 2013-09-13T05:15:35.473 に答える
1
    foreach (Control childc in Page.Controls)
    {

            if (childc is CheckBox)
            {
                CheckBox chk = (CheckBox)childc;
                //do your operation

            }

    }
于 2013-09-13T05:14:51.760 に答える
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 テーブルの列の名前です....

于 2014-08-22T09:41:07.987 に答える