C#如何隐藏除3之外的所有面板

C#如何隐藏除3之外的所有面板,c#,hide,panel,C#,Hide,Panel,你好,我找到了一些关于这个主题的链接,但它不起作用。 我想通过点击3个面板(菜单等)上的按钮使所有面板不可见 我尝试的以下代码无效: private IEnumerable<Panel> _panels; private IEnumerable<Panel> Panels { get { if (_panels = null) _panels = new List<

你好,我找到了一些关于这个主题的链接,但它不起作用。 我想通过点击3个面板(菜单等)上的按钮使所有面板不可见

我尝试的以下代码无效:

    private IEnumerable<Panel> _panels;
    private IEnumerable<Panel> Panels
    {
        get
        {
        if (_panels = null)
                _panels = new List<Panel>
         {
             Panel1,
             Panel2,
             Panel3,
             // etc...
         }
            return _panels;
        }
    }
    private void HidePanels()
    {
        foreach (var panel in Panels)
            panel.Visible = false;
    }

    private void btnHome_Click(object sender, EventArgs e)
    {
        HidePanels();
        homePanel.Visible = true;
    }
专用IEnumerable\u面板;
私人可数配电盘
{
得到
{
如果(_panels=null)
_面板=新列表
{
小组1,
小组2,
小组3,
//等等。。。
}
返回面板;
}
}
私有void HidePanels()
{
foreach(面板中的var面板)
面板可见=假;
}
私有void btnHome_单击(对象发送方,事件参数e)
{
HidePanels();
homePanel.Visible=true;
}

<>代码>你是否考虑不隐藏那些你不想隐藏的东西,而不是隐藏所有的东西?问题是,我有一个菜单,菜单有16个菜单按钮。因此,我将有16个面板。例如,如果我点击反馈按钮。我想展示反馈面板。例如,如果我单击聊天按钮,我想显示聊天面板。但是我的菜单有3个面板,它们必须一直保留。好的,不要隐藏它们。定义不会像您希望从
面板
列表中排除三个菜单面板那样工作。如果您还将其用于其他用途,请创建一个单独的列表--
nonmenumpanels
--并在
HidePanels()
中迭代该列表。为了清晰起见,将
HidePanels()
重命名为
hidenonmenumpanels()
。您可以有任意数量的不同列表,其中包含所创建的整个面板的不同子集。这没什么错。