为了账号安全,请及时绑定邮箱和手机立即绑定

以 C# 形式循环所有面板

以 C# 形式循环所有面板

C#
泛舟湖上清波郎朗 2021-10-09 14:03:20
这是我要做的事情的逻辑。首先,我将循环中的所有panels在我form和检查,如果visible是等于true,如果是,那么它会改变的价值false。基本上所有可见的面板都将被隐藏。问题是当我使用下面的代码运行我的程序时,所有控件都消失了。我的方法:foreach (var c in Controls){    if (c.GetType() == typeof(Panel));        c.Visible = false;}
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

如果你想让可见 --> 不可见,反之亦然,使用这个 -


foreach (Control c in Controls)

{

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

    {

        // Invert the visibility state of the panel

        c.Visible = !c.Visible;

    }

}


查看完整回答
反对 回复 2021-10-09
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您还可以使用OfType<T>仅迭代面板:

foreach (Panel p in Controls.OfType<Panel>())
    p.Visible = !p.Visible;

如果您使用的是MoreLinq,则可以使用更短的版本:

Controls.OfType<Panel>().ForEach(p => p.Visible = !p.Visible);


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信