4

我有一个主菜单,当我单击其中一个按钮时,菜单面板应该隐藏并且单击的那个应该打开。这适用于一个按钮,但对于我的第二个按钮不起作用。好吧,它显示了我猜的面板,但它是空的,即使我在面板中有一些东西。

代码很简单,所以我看不出问题出在哪里

public Form1()
{
        InitializeComponent();
        menu_botStrip.Text = DateTime.Now.ToString("dd/mm/yyyy h:mm tt");
        panel_startMenu.Show();
        panel_informationService.Hide();
        panel_customerManagement.Hide();
}

private void btn_informationService_Click(object sender, EventArgs e)
{
    panel_startMenu.Hide();
    panel_informationService.Show();
}

    private void btn_customerManagement_Click(object sender, EventArgs e)
    {

        panel_startMenu.Hide();
        panel_customerManagement.Show();
    }
4

3 回答 3

31

确保您没有将第二个面板放在第一个面板内。如果您从工具箱中拖动面板,则很有可能发生这种情况。

为确保,打开Document Outline窗口(查看->其他窗口->文档大纲),查看面板之间的关系。确保它们不包含在彼此中。它们必须处于同一嵌套级别。

如果是这样:

错误的

然后选择内部面板并按窗口上方的左箭头按钮。然后它应该看起来像:

正确的

这是正确的。

于 2013-03-05T09:37:44.970 回答
0

不应该再次隐藏第一个面板(信息服务)吗?如果两者同时显示,可能会有一个难看的叠加层......

private void btn_informationService_Click(object sender, EventArgs e)
{
    panel_startMenu.Hide();
    panel_customerManagement.Hide();
    panel_informationService.Show();
}

private void btn_customerManagement_Click(object sender, EventArgs e)
{
    panel_startMenu.Hide();
    panel_informationService.Hide();
    panel_customerManagement.Show();
}
于 2013-03-05T09:36:53.753 回答
-1

我同意@MD.Unicorn,您必须小心在表单上订购这些面板(图层上下文)。这意味着如果您的面板包含另一个面板或多个面板 - 在隐藏特定父级后,您将隐藏所有子组件。

于 2014-12-05T20:13:30.877 回答