C#隐藏所有标签/控件
是否可以在windows窗体中使用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&
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();
}
}