C# 面板行为:分离

C# 面板行为:分离,c#,winforms,panel,C#,Winforms,Panel,我有3个面板和3个按钮。我想实现的是,每次点击按钮都会出现相应的面板,目前我使用的是panel.Visible=true和panel.Visible=false但由于WFA中面板上的每个元素都被视为该面板的子元素,因此我得到的结果是它们要么全部可见,要么全部不可见 问:如何使每个面板单独工作 这是可见性控制代码: private void btnHome_Click(object sender, EventArgs e) { panelHome.Visible = true; p

我有3个面板和3个按钮。我想实现的是,每次点击按钮都会出现相应的面板,目前我使用的是
panel.Visible=true
panel.Visible=false但由于WFA中面板上的每个元素都被视为该面板的子元素,因此我得到的结果是它们要么全部可见,要么全部不可见

问:如何使每个面板单独工作

这是可见性控制代码:

private void btnHome_Click(object sender, EventArgs e)
{
    panelHome.Visible = true;
    panelContact.Visible = false;
    panelOther.Visible = false;
}

private void btnContact_Click(object sender, EventArgs e)
{
    panelHome.Visible = false;
    panelContact.Visible = true;
    panelOther.Visible = false;
}

private void btnOther_Click(object sender, EventArgs e)
{
    panelHome.Visible = false;
    panelContact.Visible = false;
    panelOther.Visible = true;
}

使用图形用户界面可以轻松解决此问题:

您只需小心地将每个面板放置在前一个面板的顶部,直到蓝色的
指南出现

注:您需要检查两个指南:一个垂直(左或右)和一个水平(顶部或底部)


你不能用一个吗?是的,我当然可以,但在这种情况下,需要面板将面板放置在顶部,而不是嵌套在另一个面板中。你可以将其靠近,然后使用键盘来显示两个像素。当然,您也可以在代码中完成。使用“文档大纲”窗口可能更容易实现。我认为您可以使用BringToFront()和SendToBack()方法!这是可行的,尽管我更喜欢使用键盘或align命令@kaj:No。为什么不呢?我将它与四个面板放在一起,然后调用BringToFront()来显示想要的面板!这不是OP问的吗?