所以我一直试图做这个布局。到目前为止,我已经能够使用 DockStyle.Left 来完成第一个面板。但是,当我尝试添加第二个时,它会与第一个重叠。另外,添加/管理面板的最佳方式是什么,所以当我添加第3个面板时,两个面板都会获得UI高度的一半。
我想避免使用拖放工具。
到目前为止我的小组代码:
Panel backPanel = new Panel();
backPanel.Dock = DockStyle.Fill;
Panel panel1 = new Panel();
panel1.Dock = DockStyle.Left;
panel1.BackColor = Color.Red;
Panel panel2 = new Panel();
panel2.Dock = DockStyle.Top;
panel2.BackColor = Color.Cyan;
backPanel.Controls.Add(panel1);
backPanel.Controls.Add(panel2);
this.Controls.Add(backPanel);
答案 0 :(得分:1)
控件停靠在它们的Z顺序中,这是沿着表格的Z轴(深度)对表单上的控件进行可视化分层。 <子> [MSDN] 子>
因此,向容器添加控件的顺序非常重要。例如,为了获得预期的布局,您可以在另一个中添加控件:
var panel1 = new Panel() { BackColor = Color.Red, Dock = DockStyle.Left };
var panel2 = new Panel() { BackColor = Color.Green, Dock = DockStyle.Top };
var panel3 = new Panel() { BackColor = Color.Blue, Dock = DockStyle.Fill };
this.Controls.AddRange(new[] { panel3, panel2, panel1 });
注意:强>
SendToBack
和BringToFrom
方法将其置于前面或将其发送到所有控件的后面。SetChildIndex
方法来设置控件的z-index。SplitContainer
控件。