c#,.net 对多个textBox进行循环赋值时使用这个方法,但是不能赋值在一些控件容器里的textbox

foreach (Control aa in Controls)
{
if (aa.GetType().ToString() == "System.Windows.Forms.TextBox")
{ aa.Text = "qq"; }
}
能有办法解决这个问题吗

这个真没有,估计楼下两位看错了——人家是将所有的textbox的text都赋值为'qq',而不是将某个ID的textbox赋值。

目前好象只有迭代方式实现,还没有能在后台一次取完的!

但是,如果是这样的话,还真有办法处理:问题在就在于继承上!

public class DefinedTextBox :TextBox
{
public DefinedTextBox()
{
this.Text = "qq";
}
//other code in here;
}
然后每一人TextBox不再使用TextBox,而是使用DefinedTextBox,在生成时就全部会生成这个!

当然,直接使用属性改造也是可以的!

除此之外,我也要学习!不过据我知,除了迭代没有其他的方法的!就算使用lambda表达式,虽然代码上没有了循环,其实生成后还是存在迭代的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
//给你演示如何获取全部控件,包括容器里面的
private List<Control> AllControls = new List<Control>();
private void  FindControls(Control container)
{
    foreach (Control c in container.Controls)
    {
        AllControls.Add(c);
        if (c.HasChildren)
        {
            FindControls(c);
        }
    }
}
private void button1_Click(object sender, EventArgs e)
{
    FindControls(this);
    foreach (Control c in AllControls)
    {
        MessageBox.Show(c.Name.ToString());
    }
}

本回答被提问者采纳
第2个回答  2013-05-21
这个 可以有
用findcontorl方法
具体你查下所用容易的findcontrols如何使用
第3个回答  2013-05-21
在其他容器里面的控件需要用到一个FindControl(id)方法获取里面的控件
第4个回答  2013-05-21
用多重循环试试行不,我现在手上没电脑只有手机,明天我试试看行不行再联系你