C# 在winforms中,面板无法停靠在我希望它们停靠的位置

C# 在winforms中,面板无法停靠在我希望它们停靠的位置,c#,winforms,C#,Winforms,可能重复: 当我在winforms中放置面板时,似乎得到了意想不到的结果。如果我有3个面板,我将它们全部固定在顶部,希望它们都是一个接一个的,我会将最后一个面板固定在应用程序的顶部,而不是最后一个固定面板的底部 我想我对winforms面板中的dock属性是如何工作的感到困惑!?每次我尝试布局我的应用程序时,我都会感到头疼,因为有一个面板想要停靠在我不想要的地方。我做了更多的研究,在stackoverflow上发现了这一点 一旦我打开那个窗口并将面板在层次结构中向上移动,它就完全按照我的预期和

可能重复:

当我在winforms中放置面板时,似乎得到了意想不到的结果。如果我有3个面板,我将它们全部固定在顶部,希望它们都是一个接一个的,我会将最后一个面板固定在应用程序的顶部,而不是最后一个固定面板的底部


我想我对winforms面板中的dock属性是如何工作的感到困惑!?每次我尝试布局我的应用程序时,我都会感到头疼,因为有一个面板想要停靠在我不想要的地方。

我做了更多的研究,在stackoverflow上发现了这一点
一旦我打开那个窗口并将面板在层次结构中向上移动,它就完全按照我的预期和想要的方式停靠。我知道一定有某种类型的控制层次结构我可以搞乱。

我做了更多的研究,在stackoverflow上发现了这一点 一旦我打开那个窗口并将面板在层次结构中向上移动,它就完全按照我的预期和想要的方式停靠。我知道一定有某种类型的控件层次结构我可以处理。

使用Visual Studio中的视图查看表单的层次结构。您将能够确保所有面板处于同一级别,在同一父级下,并且能够对它们重新排序以更改停靠行为/优先级。

使用Visual Studio中的视图查看表单的层次结构。您将能够确保所有面板处于同一级别,在同一父级下,并且您将能够对它们重新排序以更改停靠行为/优先级。

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};
            }
        }
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};
            }
        }

您是否可以共享代码或图像来向我们展示您试图实现的目标?答案会更容易回答。您是否尝试过设置z顺序?我似乎记得这可能会影响对接。请确保面板彼此不包含在一起。您是否可以共享代码或图像以向我们展示您试图实现的目标?答案会更容易回答。您是否尝试过设置z顺序?我似乎记得这可能会影响对接。请确保面板彼此不包含在一起。请不要重复回答,原始问题的链接就足够了。他已经回答了,我正在键入此内容。在我发布的时候,我甚至没有看到罗曼的答案。请不要重复答案,一个到原始问题的链接就足够了。他已经回答了,我正在把这个打印出来。在我发布的时候,我甚至没有看到罗曼的答案。。