设置与面板尺寸相关的表单尺寸
本文关键字:表单 设置 | 更新日期: 2023-09-27 18:05:44
我正在使用c#,我有一个WinForms应用程序。
我有一个包含一些按钮的主表单,假设按钮a和B。我有另一种形式,FormB,它有两个不同尺寸的面板。
我要做的是当用户点击按钮A是显示FormB与第一个面板的尺寸,并表示第一个面板。当用户单击按钮B时,将显示第二个面板尺寸的formB并展示第二个面板。
我知道如何在每种情况下显示这些面板,但表单大小没有像我预期的那样改变。
我试图使用Dock属性并将其设置为填充。但是什么也没发生。
private void FormB_Load(object sender, EventArgs e)
{
panel1.Location = panel2.Location = new Point();
timer1.Start();
if (!first)
{
panel1.Visible = false;
panel2.Visible = true;
}
else
{
panel1.Visible = true;
panel2.Visible = false;
}
this.Dock = DockStyle.Fill;
}
您应该使用panel1.Dock = DockStyle.Fill
或panel2.Dock = DockStyle.Fill
,而不是this.Dock = DockStyle.Fill
,因为您想设置Panel
而不是Form
的Dock属性。
private void FormB_Load(object sender, EventArgs e)
{
panel1.Location = panel2.Location = new Point();
timer1.Start();
if (!first)
{
panel1.Visible = false;
panel2.Visible = true;
panel2.Dock = DockStyle.Fill;
}
else
{
panel1.Visible = true;
panel2.Visible = false;
panel1.Dock = DockStyle.Fill;
}
}
EDIT但是前面的代码会根据表单的大小改变面板的大小。因为你想把表单的大小设置为面板的大小,那么你应该像这样设置Form
的Size
属性:
private void FormB_Load(object sender, EventArgs e)
{
panel1.Location = panel2.Location = new Point();
timer1.Start();
if (!first)
{
panel1.Visible = false;
panel2.Visible = true;
this.Size = new Size(panel2.Size.Width + 16, panel2.Size.Height + 38);
}
else
{
panel1.Visible = true;
panel2.Visible = false;
this.Size = new Size(panel1.Size.Width + 16, panel1.Size.Height + 38);
}
}