日期:2014-05-19  浏览次数:20901 次

一大堆checkBox,如何用FOR循环来改变他们的Checked值?
如果要实现下面这堆东西(原来的Checked值是flase)

checkBox1.Checked   =   true;
checkBox2.Checked   =   true;
checkBox3.Checked   =   true;
……
checkBox99.Checked   =   true;

如何用FOR循环来做?不行的话,有没有其他办法?

------解决方案--------------------
//使用JS,以下代码只可参考,没测试过

var input = document.getElementsByTagName( "input ");
for(i=0;i <input.length;i++)
{
var tempObj=document.getElementById( "checkBox "+(i+1));
if(tempObj.tagName== "INPUT " && tempObj.type == "checkbox ")
{
if( tempObj.checked)
{
tempObj.checked = false;
}
}
}
------解决方案--------------------
如果这些控件都在Form内的话,用foreach遍历一下就可以了...

具体代码如下:

foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(CheckBox))
{
//这里可以根据须要来设置. 强制转换后可以提取CheckBox的相关属性.
((CheckBox)c).Checked = true;
}
}
------解决方案--------------------
最好是把相关的CheckBox放到同一个容器中,否则循环的方法就不太好用。
------解决方案--------------------
C#?是WebForm和WinForm的区别

foreach(Control vControl in Controls)
{
if (vControl is CheckBox)
((CheckBox)vControl).Checked = true;
}
------解决方案--------------------
//另一种方案
for (int i = 1; i <= 100; i++)
{
Control[] vControls = Controls.Find(string.Format( "checkBox{0} ", i), true);
if (vControls.Length > 0 && vControls[0] is CheckBox)
((CheckBox)vControls[0]).Checked = true;
}