如何相应地调整表单内面板的大小?
我的表单有3个面板
如果我将panel2.visible设置为false,则panel3会占用空间。
如果将panel1.visible设置为false,则panel3也将占据其余部分。
回到原始形式-所有3个面板都存在。
如果我将panel1.visible设置为false,则panel2和3会占用panel1的空间
一旦再次看到面板1或2,面板3就会恢复原状。
答案 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。并且在可见时将大小设置为默认值。
我希望这会有所帮助。