如果要确定button的位置,可以在页面上先放几个placeholder,然后只要动态的把button add 到这个placeholder中去就可以了.

解决方案 »

  1.   

    可以在创建的时候动态指定button的位置
    private void AddMyGroupBox()
    {
       // Create a GroupBox and add a TextBox to it.
       GroupBox groupBox1 = new GroupBox();
       button button1 = new button();
       button.Location = new Point(15, 15);
       groupBox1.Controls.Add(button);   // Set the Text and Dock properties of the GroupBox.
       groupBox1.Text = "MyGroupBox";
       groupBox1.Dock = DockStyle.Top;   // Disable the GroupBox (which disables all its child controls)
       groupBox1.Enabled = false;   // Add the Groupbox to the form.
       this.Controls.Add(groupBox1);
    }
      

  2.   

    我是把BUTTON放到PLANE上的。
    BUTTON TEST = NEW BUTTON();
    BUTTON.TEXT ="SDF";
    ......
    BUTTON.DOCK = DOCKSTYLE.LEFT;
    PLANE.CONTOUTS.ADD(TEST);
    可是后生成的自动都跑到最前面去了!
      

  3.   

    用BUTTON数组也没解决,还是一样的效果,后来的跑到最前了!
      

  4.   

    for(int i=0;i<10;i++)
    { // 
    Eps.Controls.WinControls.ButtonEx btn = new Eps.Controls.WinControls.ButtonEx();
    //btn.Dock =  System.Windows.Forms.DockStyle.Top;
    btn.Location = new System.Drawing.Point(0, i*20);
    btn.Text = "测试"+i.ToString();

    btn.Name = "userControl11"+i.ToString();
    btn.Size = new System.Drawing.Size(100, 20);
    btn.TabIndex = 1;
    btn.Click += new System.EventHandler(this.buttonEx1_Click);
    this.Controls.Add(btn);
    //this.panel1.Controls.Add(btn);
    }
      

  5.   

    我手动添加了10个button dock都设置为left,在设计器上看起来达到了楼主需要的效果;然后去代码里窗体设计的地方看了下,发现了比较有意思的现象,后加的button执行Controls.Add(btn);的代码反而在先加的前面,.net自动生成的代码就是如此,可想而知动态生成的话就会发生楼主所说的情况
      

  6.   

    TO  maotroy() 我现在就是郁闷在这里了!
      

  7.   

    如果可以一次生成统一添加的话,那只要把添加顺序颠倒就可以解决
    如果需要在交互过程中不断动态生成的话用angxain(卖女孩的小火财)的方法可以解决
    如果一定要用dock属性而对时效要求不高的话,那可以先全部remove,然后再添加