调整面板大小

时间:2018-08-19 06:49:11

标签: c# winforms layout panel

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

我的表单有3个面板

Form with 3 panels

如果我将panel2.visible设置为false,则panel3会占用空间。

Panel3 to panel2

如果将panel1.visible设置为false,则panel3也将占据其余部分。

panel3 to panel1 and 2

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

如果我将panel1.visible设置为false,则panel2和3会占用panel1的空间

panel2 and 3 to panel1

一旦再次看到面板1或2,面板3就会恢复原状。

2 个答案:

答案 0 :(得分:1)

只是一个附加信息,看来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);
            }    

答案 1 :(得分:0)

看来,根据您所讨论的案例。即使隐藏面板2和3,Panel1也将始终位于最上面。 同样,面板2将始终保持对齐状态。第3面板将始终占据可用空间。

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

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

隐藏控件时的另一件事是将其大小设置为0。并且在可见时将大小设置为默认值。

我希望这会有所帮助。