可能的重复:
panel.dock填充忽略其他面板。dock设置
看来,当我将面板放在Winforms中时,我会得到意外的结果。如果我有3个面板,然后将它们都放在顶部,以便希望它们全部是另一个,我将最后一个停靠到应用程序的顶部,而不是最后一个停靠的面板的底部。<<<<<<<<<<<<<<<</p>
我想我对Winforms面板中的码头属性的工作方式感到困惑!每次我尝试布局的应用程序时,我都会感到头疼,因为一个面板想在我不想要的地方停靠。
使用Visual Studio中的"文档概述"视图查看表单的层次结构。您将能够确保所有面板在同一父母下都处于同一级别,并且您可以重新排序以更改对接行为/优先级。
我做了更多的研究,并在stackoverflow上找到了这个问题一旦我打开该窗口并将面板移到层次结构中,它就完全停靠了我的期望和想要的方式。我知道必须有某种类型的控制层次结构。
ypu应该检查此
您可以尝试:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CreatePanels();
}
private void CreatePanels()
{
//YOu should create panelGlobal on your winform and set DockStyle.Fill
panelGlobal.Controls.Add(CreatePanel("topPanel",DockStyle.Top,Color.Red));
panelGlobal.Controls.Add(CreatePanel("bottomPAnel", DockStyle.Bottom, Color.Gray));
panelGlobal.Controls.Add(CreatePanel("fillPanel",DockStyle.Fill,Color.Snow));
}
private Panel CreatePanel(string panelName, DockStyle dockStyle,Color color)
{
return new Panel() { Name = panelName, Dock = dockStyle , BackColor=color};
}
}