C#隐藏所有标签/控件

C#隐藏所有标签/控件,c#,winforms,visual-studio-2012,C#,Winforms,Visual Studio 2012,是否可以在windows窗体中使用C#在加载窗体时隐藏所有特定控件,例如标签或按钮,然后选择显示我不想显示的控件 我有一个包含很多按钮和标签的程序,但我只想在加载时显示一个或两个,我觉得这样做的方法是label1.Hide()对于每个标签似乎效率低下,但我可以在需要时显示我想要的标签。也许用一个循环,像这样: foreach (Label) { this.Hide(); } 试试这个: foreach(Label l in this.Controls.OfType<Label&

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

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

foreach (Label)
{
    this.Hide();
}
试试这个:

 foreach(Label l in this.Controls.OfType<Label>())
 {
    l.Visible=false;
 }

 this.myControl.Visible=true;
foreach(此.Controls.OfType()中的标签l)
{
l、 可见=假;
}
this.myControl.Visible=true;

听起来您可以将它们全部隐藏在设计器中,这样就不必在运行时隐藏它们了

如果必须在运行时隐藏它们,则可以使用一点LINQ获取特定类型窗体上的所有控件:

foreach (var lbl in Controls.OfType<Label>())
    lbl.Hide();
foreach(Controls.OfType()中的变量lbl)
lbl.Hide();
您甚至可以根据控件的名称对其进行过滤,以便只隐藏要隐藏的控件:

foreach (var lbl in Controls.OfType<Label>().Where(x => x.Name != "lblAlwaysShow"))
    lbl.Hide();
foreach(Controls.OfType()中的变量lbl,其中(x=>x.Name!=“lblAlwaysShow”))
lbl.Hide();
如果它们也隐藏在其他控件(如面板或组框)中,您也必须遍历它们的控件集合:

foreach (var lbl in panel1.Controls.OfType<Label>())
    lbl.Hide();

foreach (var lbl in groupBox1.Controls.OfType<Label>())
    lbl.Hide();
foreach(panel1.Controls.OfType()中的变量lbl)
lbl.Hide();
foreach(groupBox1.Controls.OfType()中的变量lbl)
lbl.Hide();

您也可以用更少的代码来尝试。它工作于另一个表单控件(等文本框、按钮…)


你可以在表单控件中循环,检查它们是否是你想要的,然后隐藏它们。将它们放入列表:列表,并根据需要使用它们来隐藏和显示。请注意,除非它们位于FlowLayoutPanel中,否则其他控件不会更改其位置!或者将某些值设置为它们的标记,并在您想要显示或隐藏某些控件时对其进行测试。我当时没有想到在设计器中隐藏控件,但是第一个控件也起到了作用,我将尝试这两种方法,看看什么最适合我的程序,谢谢!
foreach (Control lbl in Controls)
{
 if ((lbl) is Label)
 {
  lbl.Hide();
 }
}