c# - 我如何在winforms(许多组框)中foreach所有按钮
问题描述
我在三个组框(groupbox1 等)中有 6 个按钮。一切都在form1中,我尝试启用所有..但什么也没发生
foreach(var cmd in this.Controls.OfType<Button>())
{
cmd.Enabled = true;
}
这是正确的解决方案吗?
foreach(var gb in this.Controls.OfType<GroupBox>())
{
foreach (var cmd in gb.Controls.OfType<Button>())
{
cmd.Enabled = true;
}
}
解决方案
您必须访问Controls
每个内部的属性GroupBox
才能获得所需的Button
实例。
您提出的解决方案确实有效,但您可以改用 LINQ 的SelectMany
链接:
foreach (var button in Controls.OfType<GroupBox>()
.SelectMany(groupBox => groupBox.Controls.OfType<Button>()))
{
button.Enabled = true;
}
推荐阅读
- twitter-bootstrap - 用于文本区域的 Bootstrap 5 浮动标签与滚动输入重叠
- python - 使正则表达式组合多个字符和数字组合
- c++ - 使用 unique_ptr 包装和展开 void*
- android - Facebook 奖励广告未加载
- angular-cli - 在 Angular 9 中进行 ng build 时出现错误:发生未处理的异常:找不到模块'@angular-devkit/build-angular/package.json'
- php - Laravel Livewire 视图渲染后是否可以更改变量?
- macos - 如何在 Mac 上模拟 High Ping?
- linux - 如何在 ARM64 上禁用写保护
- laravel - 在 Laravel 中每月和每年显示表格的列总计
- javascript - 电子预加载中文字字符串中的 Onclick 事件