以 C# 形式循环所有面板

这是我要做的事情的逻辑。首先,我将循环中的所有panels在我form和检查,如果visible是等于true,如果是,那么它会改变的价值false。基本上所有可见的面板都将被隐藏。


问题是当我使用下面的代码运行我的程序时,所有控件都消失了。


我的方法:


foreach (var c in Controls)

{

    if (c.GetType() == typeof(Panel));

        c.Visible = false;

}


泛舟湖上清波郎朗
浏览 171回答 2
2回答

牧羊人nacy

如果你想让可见 --> 不可见,反之亦然,使用这个 -foreach (Control c in Controls){    if (c.GetType() == typeof(Panel))    {        // Invert the visibility state of the panel        c.Visible = !c.Visible;    }}

沧海一幻觉

您还可以使用OfType<T>仅迭代面板:foreach&nbsp;(Panel&nbsp;p&nbsp;in&nbsp;Controls.OfType<Panel>()) &nbsp;&nbsp;&nbsp;&nbsp;p.Visible&nbsp;=&nbsp;!p.Visible;如果您使用的是MoreLinq,则可以使用更短的版本:Controls.OfType<Panel>().ForEach(p&nbsp;=>&nbsp;p.Visible&nbsp;=&nbsp;!p.Visible);
打开App,查看更多内容
随时随地看视频慕课网APP