面板不会停靠在我希望它们在 winForms 中停靠的位置



可能的重复:
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};
            }
        }

最新更新