Joh*_*ohn 2 c# winforms visual-studio-2012
是否可以在使用 C# 的 Windows 窗体中隐藏所有特定控件(例如标签或按钮),然后选择显示我不想显示的控件?
我有一个包含很多按钮和标签的程序,但我只想在加载时显示一两个,我觉得label1.Hide();为每个标签执行这种方法似乎效率低下,但我可以在需要时显示我想要的标签。也许使用循环,像这样:
foreach (Label)
{
this.Hide();
}
Run Code Online (Sandbox Code Playgroud)
听起来您可以将它们全部隐藏在设计器中,然后您就不必在运行时处理隐藏它们。
如果您必须在运行时隐藏它们,那么您可以使用一点 LINQ 获取某种类型的 Form 上的所有控件:
foreach (var lbl in Controls.OfType<Label>())
lbl.Hide();
Run Code Online (Sandbox Code Playgroud)
您甚至可以根据名称过滤控件,因此您只需隐藏要隐藏的控件:
foreach (var lbl in Controls.OfType<Label>().Where(x => x.Name != "lblAlwaysShow"))
lbl.Hide();
Run Code Online (Sandbox Code Playgroud)
如果它们也隐藏在其他控件中,例如 Panels 或 GroupBoxes,则您也必须遍历它们的 ControlCollections:
foreach (var lbl in panel1.Controls.OfType<Label>())
lbl.Hide();
foreach (var lbl in groupBox1.Controls.OfType<Label>())
lbl.Hide();
Run Code Online (Sandbox Code Playgroud)