我有一个 Windows 窗体,其中包含一些文本框和标签。在我的程序中,我将它们全部设置为不可见,当我按下按钮时,它会使所有标签和文本框通过下面的代码可见,并且效果完美。
List<Label> lbls = this.Controls.OfType<Label>().ToList();
foreach (var lbl in lbls)
{
if (lbl.Name.StartsWith("label"))
{
lbl.Visible = true;
}
}
List<TextBox> txts = this.Controls.OfType<TextBox>().ToList();
foreach (var txt in txts)
{
if (txt.Name.StartsWith("textBox"))
{
txt.Visible = true;
}
}
但是当我将所有标签和文本框放入组框中时。我的代码不起作用。我该怎么做?
注意:当我按下按钮时,我的组框也是不可见的。
groupBox1.visible =true;
此代码有效,组框面板似乎有效,但标签和文本框的代码不起作用。
最佳答案
因为您正在使用此处 Form 的直接子级
List<Label> lbls = this.Controls.OfType<Label>().ToList();
注意this
表示您当前的表单。所以当你在表单之外有控件时它就可以工作,
但是当您将它们放入组框中时,它将不再是直接子级。
所以使用
List<Label> lbls = groupBox1.Controls.OfType<Label>().ToList();
这将使您能够访问组框的直接子级。
关于c# - 如何在c#中查看groupbox内的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52478776/