使用C#在Windows窗体中是否可以在表单加载时隐藏所有特定控件,例如标签或按钮,然后选择显示我不想显示的那些?
我有一个程序,其中包含很多按钮和标签,但我只想在加载时显示一个或两个,我觉得为每个标签做label1.Hide();
的这种方法看起来效率不高但是我可以只显示我想要的标签。也许使用循环,如下所示:
foreach (Label)
{
this.Hide();
}
答案 0 :(得分:4)
听起来你可以将它们全部隐藏在设计器中,然后你就不必在运行时处理它们了。
如果你必须在运行时隐藏它们,那么你可以使用一点LINQ获取某个类型的Form上的所有控件:
foreach (var lbl in Controls.OfType<Label>())
lbl.Hide();
您甚至可以根据名称过滤控件,因此您只能隐藏要隐藏的控件:
foreach (var lbl in Controls.OfType<Label>().Where(x => x.Name != "lblAlwaysShow"))
lbl.Hide();
如果他们还隐藏在其他控件中,例如Panels或GroupBoxes,那么你也必须遍历他们的ControlCollections:
foreach (var lbl in panel1.Controls.OfType<Label>())
lbl.Hide();
foreach (var lbl in groupBox1.Controls.OfType<Label>())
lbl.Hide();
答案 1 :(得分:1)
您可以使用更少的代码尝试此操作。它可以工作另一个表单控件(等文本框,按钮...)
foreach (Control lbl in Controls)
{
if ((lbl) is Label)
{
lbl.Hide();
}
}
答案 2 :(得分:0)
试试这个:
foreach(Label l in this.Controls.OfType<Label>())
{
l.Visible=false;
}
this.myControl.Visible=true;