c# - 如何在c#中显示组框内的所有项目
问题描述
我有一个包含一些文本框和标签的 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;
}
}
但是,当我将所有标签和文本框都放入 groupbox 时。我的代码不起作用。我该怎么做?
注意:当我按下按钮时,我的 groupbox 也是不可见的。
groupBox1.visible =true;
此代码有效并且组框面板似乎,但标签和文本框的代码不起作用。
解决方案
因为您在这里使用 Form 的直系子级
List<Label> lbls = this.Controls.OfType<Label>().ToList();
请注意this
,这意味着您当前的表格。因此,当您在表单外部进行控制时,它可以工作,
但是当你把它们放在组框里时,它就不再是直接的孩子了。
所以用
List<Label> lbls = groupBox1.Controls.OfType<Label>().ToList();
这将使您能够访问组框的直接子项。
推荐阅读
- git - jenkins git clone 错误:克隆远程 repo 'origin' 时出错
- angularjs - Visual Studio Code 上的 Angular:如何显示数据库中的图像?
- javascript - 无法验证收据错误:无法使用 Node.js 验证购买
- java - 开始使用必发的 Java Streaming API
- java - Java Map 实现渐近复杂度(HashMap、LinkedHashMap、TreeMap)
- bash - wget 用原始名称重命名
- amazon-web-services - Terraform Route53 数据
- mysql - 如何从组不包含值的表中选择行
- node.js - 有没有办法在 NodeJS 中生成受密码保护的 XLSX?
- java - 使用 JDBC Driver-SQLException 创建到 SQL 数据库的连接