我刚刚看到了另一个问题的答案,该问题隐藏了表单中的所有面板。所以我想知道如何使此代码例外。这段代码在C#中。
foreach (Control c in this.Controls) { if (c is Panel) c.Visible = false; }
我试图添加另一个以检查c是否是我的面板,但这不起作用。
如果(c是MyPanel)继续;
MyPanl是我的面板的名称。
错误列表说A constant value is expected
有人可以帮忙吗?
答案 0 :(得分:2)
根据您的评论,您可以尝试使用c == MyPanel
代替c is MyPanel
作为条件,因为... is ...
检查了类型而不是比较实例。
foreach (Control c in this.Controls)
{
if (c == MyPanel) continue;
else if (c is Panel) c.Visible = false;
}
我将使用linq where
设置条件以使代码更清晰
var panels = this.Controls
.Cast<Control>()
.Where(c => c != MyPanel && c is Panel);
foreach (var c in panels)
{
c.Visible = false;
}