如何从代码中的面板内部的对接控件获得相同的效果,就像从设计器对接它们一样?

时间:2013-07-08 15:20:14

标签: c# controls panel dock

enter image description here

问题,如图所示。如果我填写这样的代码面板:

private void Form1_Load(object sender, EventArgs e)
{
    Panel pnl = new Panel();
    PictureBox pb = new PictureBox();
    TextBox txt = new TextBox();

    pnl.BorderStyle = BorderStyle.FixedSingle;
    pb.BorderStyle = BorderStyle.FixedSingle;
    pb.Dock = DockStyle.Top;
    txt.Dock = DockStyle.Fill;

    pnl.Controls.Add(pb);
    pnl.Controls.Add(txt);
    this.Controls.Add(pnl);
}

TextBox仍然在面板内的0,0位置

1 个答案:

答案 0 :(得分:1)

您必须首先使用DockStyle.Fill添加控件。

这也可以通过使用Controls.SetChildIndex方法在代码中完成,并使用DockStyle.Fill设置控件的ChildIndex以使数字与其他数字相同。

在Visual Studio的“文档大纲”视图中,您可以对控件进行上下排序,从而在x.Designer.cs文件中设置ChildIndex。