TextBox tb;
        int n;        public void btn1_Click(object sender, EventArgs e)
        {
            tb = new TextBox();
            tb.Name = "tb" + n.ToString();
            n++;           //其他代码        }
设想是按一次按钮 创建一个TextBox, 例如按一次生成一个name为tb0的TextBox,第二次生成tb1,以此类推。
现想选择其中一个TextBox来设置其text属性值,但不知如何获取到想要的TextBox。
例如要设置tb0.text="ss",要怎么实现?
希望各位高手提供思路。谢谢!

解决方案 »

  1.   

      TextBox tb;
      private int n = 0;  public void btn1_Click(object sender, EventArgs e)
      {
      tb = new TextBox();
      tb.Name = "tb" + n.ToString();
      n++;
      this.Controls.Add(tb);  //其他代码  }获取:
    int x = 3; //设置你想获取的编号
    tb = this.Controls["tb" + x.ToString()] as TextBox;
    tb.Text = "ss";
      

  2.   


    private int n = 0;
        protected void Button1_Click(object sender, EventArgs e)
        {
           string str="tb"+n;
           this.div.InnerHtml += string.Format("<input type='text' id='{0}' />", str);
           n++;
        }
    有了ID就可以获取控件了
    this.tb0.Text="......";楼上有this.Controls.Add(),的方法是添加不了控件的,
      

  3.   

    谢谢各位帮助,1楼方法满足我需求,十分感谢。
    问题提问时没说我做的是winform,不知3楼方法是否可用。
    结贴给分,再次感谢
      

  4.   

    低调啊低调...一楼只是给了个方法...怎么就能说this.Controls.Add()添加不了呢    貌似你的写法问题更大...
      

  5.   

     如果你希望动态生成的textbox在后期可以被控制,除了查找控件外还有一个思路:
     创建一个界面对象A,包括texbox和后台的业务对象B,B内包含一个数据变化的事件BArg,在A中注册并实现BArg的处理(姑且叫作Bhandle), B发生变化时, 触发BHandle,由于其是在A中的,因此可以直接找到与B关联的TEXTBOX,直接设置数据即可,这样如果控件较多时,效率会高一些。