C# 隐藏所有标签/控件

标签 c# winforms visual-studio-2012

是否可以在 Windows 窗体中使用 C# 在窗体加载时隐藏所有特定控件,例如标签或按钮,然后选择显示我不想显示的那些?

我有一个包含很多按钮和标签的程序,但我只想在加载时显示一两个,我觉得对每个标签都使用 label1.Hide(); 这种方法似乎效率低下,但我可以在需要时显示我想要的标签。也许使用循环,像这样:

foreach (Label)
{
    this.Hide();
}

最佳答案

听起来您可以将它们全部隐藏在设计器中,然后您就不必在运行时处理隐藏它们的问题了。

如果您确实必须在运行时隐藏它们,那么您可以使用一点 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();

关于C# 隐藏所有标签/控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233558/

相关文章:

c# - 在我重新启动游戏之前,streamWriter 不会应用更改

c# - 将 Windows 窗体单元测试迁移到 WPF

c# - 如何在 C# Windows 窗体中的特定位置定位打开窗体?

visual-studio-2012 - vs2012 Web Essentials 不会在保存时自动编译更少的文件

excel - 在TFS 2012中导出到excel,错误代码: TF400422

javascript - 使用ajax将数据从文本框提交到asp net mvc Controller

c# - 发送菜单键(右键单击)

c# - 获取通用抽象类的默认构造函数

c# - 如何获取表单的截图

c# - 使用 .NET 3.5 时如何删除 LinkLabel 作为制表位?