表单面板调整大小

Form Panels Resizing

如何相应地调整表单内面板的大小?

我的表单有 3 个面板

如果我设置panel2.visible为false,panel3会占用space.

如果我设置panel1.visible为false,panel3也占据了剩下的

回到原来的形式 - 所有 3 个面板都存在。

如果我设置panel1.visible为false,panel2和3占据panel1的space

面板 1 或 2 再次可见后,面板 3 将恢复原状。

从你的案例来看似乎是这样。即使隐藏面板 2 和 3,面板 1 也将始终位于顶部。 同样,面板 2 将始终左对齐。面板 3 将始终占用可用 space .

请在面板控件上设置停靠栏属性。

Panel1.Dock = top
Panel2.Dock = left
Panel3.Dock = fill

还有一点,当控件隐藏时,将它们的大小设置为 0。当可见时,将大小设置为默认值。

希望对您有所帮助。

只是一个补充信息,似乎 tablelayout 可以解决我的问题,但我更喜欢@ANaik 的解决方案。

            if (myPanel.Visible)
            {
                myPanel.Visible = false;

                tableLayoutPanel1.SetCellPosition(myPanel, new 
                TableLayoutPanelCellPosition(0, 1));
                tableLayoutPanel1.SetColumnSpan(myPanel, 2);

            }
            else
            {
                myPanel.Visible = true;

                tableLayoutPanel1.SetCellPosition(myPanel, new TableLayoutPanelCellPosition(1, 1));
                tableLayoutPanel1.SetColumnSpan(myPanel, 1);
            }