winforms面板隐藏和显示

时间:2011-12-01 15:33:26

标签: c# .net winforms

我有两个面板在splitviewcontainer的一侧占据相同的空间。 我想动态显示或隐藏一个面板或另一个面板。

到目前为止,我尝试过的方法是:

if (treeView1.SelectedNode.Name.Contains("cat")) {
    menuItemPanel.SendToBack();
    foreach (Control control in menuItemPanel.Controls)
        control.SendToBack();
    menuItemPanel.Visible = false;
    categoryPanel.Hide();

    categoryPanel.Visible = true;
    categoryPanel.BringToFront();
    foreach (Control control in categoryPanel.Controls)
        control.BringToFront();
    categoryPanel.Show();

    // ...
}

和其他情况相反。 这些似乎都不起作用。这是在选择类别节点时显示categoryPanel,但是当选择menuItem节点时,屏幕显示空白。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

代码没有多大意义,重新排序面板中的控件并不是你想要做的。还听起来else子句中的代码失败了,你没有发布的代码。这样做(猜测):

bool categorySelected = treeView1.SelectedNode.Name.Contains("cat");
menuItemPanel.Visible = !categorySelected;
categoryPanel.Visible = categorySelected;

答案 1 :(得分:0)

试试这个

   if (treeView1.SelectedNode.Name.Contains("cat"))
    {
         menuItemPanel.Visible = false;  
         categoryPanel.Visible = true;   
    }