2011年8月13日

[C#] - CheckBox 全選/全不選

今天要談的是怎麼把畫面上的CheckBox全部打勾!
平常的用法是
checkbox1.Checked=true;
多個怎麼辦?以下兩個方法可以解決這個窘境

針對CheckBox全選的問題,有兩個方法可以解
1.比對Control的型態是否為CheckBox,是的話就處理
2.使用Controls.find的功能,針對你要處理的CheckBox去尋找

直接看code比較有感覺

方法1:
foreach (Control ctrl in this.Controls)
{
    if(ctrl.GetType().Name=="CheckBox")
    {
       CheckBox ck = (CheckBox)ctrl;
       ck.Checked = true;
    }
}
P.S.如果CkeckBox在容器(Group、Panel)裡的話,就可以指到那個控制項去做搜尋,如下:
this.Controls就可以換成groupBox1.Controls


方法2:
string[] controlsN ={ "checkBox1", "checkBox2"};
for(int i=0;i<controlsN.Length;i++)
{
    ((CheckBox)this.Controls.Find(controlsN[i], false)[0]).Checked = true;
}

上述兩個方法其實都可行.

比較建議的是第一個方法搭配一個容器來使用!

這樣比較妥當!

沒有留言:

張貼留言