c#中panel控件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:37:29
如果我在一个窗体里加了三个panel,分别叫p1,p2,p3,它们是相互覆盖的关系
我想实现点击不同的按钮出现不同的panel,其他的panel隐藏,但是发现最下面的容器一旦设成visible为false了,它上面的容器即使visible是true也无法显示,怎样才能解决这个问题呢?有没有一种方法能够重新排列容器的覆盖关系?
请教各位,谢谢。

不会啊,你是不是没有隐藏不该显示的Panel?

看看下面的

private void button1_Click(object sender, EventArgs e)
{
this.panel1.Visible = true;
this.panel2.Visible = false;
this.panel3.Visible = false;
}

private void button2_Click(object sender, EventArgs e)
{
this.panel1.Visible = false;
this.panel2.Visible = true;
this.panel3.Visible = false;
}

private void button3_Click(object sender, EventArgs e)
{
this.panel1.Visible = false;
this.panel2.Visible = false;
this.panel3.Visible = true;
}

你这个算啥问题啊,多看看停靠这些设置呢?
或者每次想显示哪个panel,就把它的dock=fill
想隐藏,就把它的dock=none,再不行就把location甩到屏幕外去,比如-100,-100

那是肯定的,你说的相互覆盖,是不是p1是p2的包含控件,p2又是p3的包含控件?控件会隐藏它包含的所有控件。微软窗体设计时panel会自动把拖到它上面的控件作为它包含的控件。你可以在代码中把p1.Controls.Add(