C# 调整模板大小

C# 调整模板大小,c#,winforms,layout,panel,C#,Winforms,Layout,Panel,如何相应地调整窗体内面板的大小 我的表格有3个面板 如果将panel2.visible设置为false,则panel3会占用空间 如果我将panel1.visible设置为false,那么panel3也将占用其余部分 回到原来的形式-所有3个面板都存在 如果将panel1.visible设置为false,则panel2和panel3将占用panel1的空间 一旦面板1或面板2再次可见,面板3将恢复原来的状态。似乎根据您的案例。即使面板2和3处于隐藏状态,面板1也将始终位于顶部。 同样,面板2将始

如何相应地调整窗体内面板的大小

我的表格有3个面板

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

如果我将panel1.visible设置为false,那么panel3也将占用其余部分

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

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


一旦面板1或面板2再次可见,面板3将恢复原来的状态。

似乎根据您的案例。即使面板2和3处于隐藏状态,面板1也将始终位于顶部。 同样,面板2将始终保持左对齐。面板3将始终占用可用空间

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

Panel1.Dock = top
Panel2.Dock = left
Panel3.Dock = fill
还有一件事,当控件隐藏时,使其大小为0。当可见时,将大小设置为默认值


我希望这能有所帮助。

只是一个补充信息,似乎tablelayout有可能解决我的问题,但我更喜欢@ANaik solution

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

你有没有一些代码来说明你采取了什么方法来解决这个问题?。我不认为只有几个属性或容器就足够了。您必须为此编写代码。使用VisibleChanged事件@Steve还没有代码,但我已经尝试了dock和anchor属性,但没有运气:-@Taw我也会尝试看看。你能给我更多关于你的问题的信息吗?我使用splitContainer,没有问题谢谢@ANaik,我会试试这个。它成功了!我想我需要很多代码才能做到这一点。谢谢,