foreach(Control ctl in yourform.Controls) { if(ctl is TextBox) { //处理它的(TextBox)ctl.Text 不知道行不行 }}
同意 iget(悟不透) ( ) 信誉:100 ps:如果遇到容器,比如panel 则需要递归遍历private void findcontrol(Control ctl){ foreach(Control c in ctl.Controls){ if(c is Panel)findcontrol(c); //递归 if(c is TextBox)(c as TextBox).Text = ""; //直接访问textbox组件 } }
GroupBox 也是一个容器,也要递归遍历所以,上面的代码应写为private void OperateControls(Control control) { foreach(Control c in control.Controls) { if(c is Panel) { OperateControls(c); } if(c is GroupBox) { OperateControls(c); } if(c is TextBox) { // 它是 TextBox, 要干什么随便你 } } }调用时用: OperateControls(this);
谢谢了阿我使用的 private void FindButton(Control c) { if (c.Controls != null) { // foreach(Control x in c.Controls) { if (x is TextBox) { sss=sss+((TextBox)x).Text; } if (x is DropDownList) sss=sss+((DropDownList)x).SelectedValue; FindButton(x);
哪个大哥给各例子了
tb=(TextBox)this.FindControl(dr["dtname"].ToString());
temp=tb.Text.ToString();
不知这样是不是能解决你的问题
dr["dtname"].tostring()是控件的ID,
你换成你动态创建的TextBox的ID就行了
把这段代码放到你创建的TextBox中进行遍历取值就OK了
{
if(ctl is TextBox)
{
//处理它的(TextBox)ctl.Text 不知道行不行
}}
foreach(Control c in ctl.Controls){
if(c is Panel)findcontrol(c); //递归
if(c is TextBox)(c as TextBox).Text = ""; //直接访问textbox组件
}
}
{
foreach(Control c in control.Controls)
{
if(c is Panel)
{
OperateControls(c);
}
if(c is GroupBox)
{
OperateControls(c);
}
if(c is TextBox)
{
// 它是 TextBox, 要干什么随便你
}
}
}调用时用:
OperateControls(this);
private void FindButton(Control c)
{
if (c.Controls != null)
{
//
foreach(Control x in c.Controls)
{
if (x is TextBox)
{
sss=sss+((TextBox)x).Text;
}
if (x is DropDownList)
sss=sss+((DropDownList)x).SelectedValue;
FindButton(x);
}
}
}
调用:FindButton(this);