问题是这样的:
比如我的Form上已经有一个groupbox1控件,并且置顶对齐的,现在我要动态生成一个控件TextBox1,并且要排列在groupbox1的下方,要如何实现?
请教高手解答下。
像我下面的写不能定位:TextBox TB=new TextBox();
Controls.Add(TB);

解决方案 »

  1.   

    TextBox1.Location.X
    TextBox1.Location.Y
    //用坐标来定位
      

  2.   


    TextBox TB=new TextBox();
    TB.Location.X = groupBox1.X;
    TB.Location.Y = groupBox1.Y + groupBox1.Height + 5;
    Controls.Add(TB);
      

  3.   

    private void menuItem1_Click(object sender, System.EventArgs e)
    {
    TextBox t1=new TextBox();
    t1.Top=10;
    t1.Left=10;
    this.Controls.Add(t1);
    }
      

  4.   

    但是如果现在Form上已经有两个Groupbox1 和groupbox2,他们两个本来是紧贴在一起的,现在要做他们中间添加一个textbox控件,岂不是要移动groupbox2?然后把textbox1插进去?
      

  5.   

    VS2005提示 TB.Location.X错误,“无法修改Location的返回值,因为它不是变量”???然后我这样:            TextBox TB = new TextBox();
                TB.Left = this.groupBox1.Location.X;
                TB.Top = this.groupBox1.Height + 5;
                Controls.Add(TB);
    可以使用。
    但如果把控件TextBox换成BindingNagitor就不行了,BN这个控件会一直都是在最顶上的,也就是它在groupbox1控件的上方。
    怎么才可以定位BindingNagitor控件的位置呢?
      

  6.   

                TextBox tb = new TextBox();
                int X = this.groupBox1.Location.X;
                int Y = this.groupBox1.Location.Y + this.groupBox1.Height + 5;
                Point point = new Point(X, Y);
                //tb.Height = 20; 
                //tb.Width = 80;
                tb.Location = point;
                this.panel1.Controls.Add(tb);
      

  7.   

    晕..上面的最后一句,因为我是在panel 上面加的.所以这样写.
    如果你直接在Form上加的话,改为 this.Controls.Add (tb); 就可以了