一大堆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;
}