1

可能重复:
Panel.Dock 填充忽略其他 Panel.Dock 设置

似乎当我将面板放在 winforms 中时,我得到了意想不到的结果。如果我有 3 个面板,并且我将它们全部停靠在顶部,以便希望它们都是 1,那么我将最后一个面板停靠在应用程序的最顶部,而不是停靠在最后一个停靠面板的底部。

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

4

3 回答 3

6

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

于 2012-11-05T17:56:21.490 回答
1

我做了更多的研究并在stackoverflow上发现了这个问题一旦我打开那个窗口并将面板向上移动到层次结构中,它完全符合我的预期和想要的方式。我知道必须有某种类型的控制层次结构我可以弄乱。

于 2012-11-05T17:53:25.820 回答
0

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};
            }
        }
于 2012-11-05T18:04:05.473 回答