首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一大堆checkBox,怎么用FOR循环来改变他们的Checked值

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

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

热点排行