C# 如何在winforms(许多GroupBox)中访问所有按钮
我在三个GroupBox(groupbox1等)中有6个按钮。一切都在表格1中 我试着让所有。。但什么都没有发生C# 如何在winforms(许多GroupBox)中访问所有按钮,c#,winforms,C#,Winforms,我在三个GroupBox(groupbox1等)中有6个按钮。一切都在表格1中 我试着让所有。。但什么都没有发生 foreach(var cmd in this.Controls.OfType<Button>()) { cmd.Enabled = true; } foreach(此.Controls.OfType()中的var cmd) { cmd.Enabled=true; } 这是正确的解决方案吗 foreach(var gb in this.Controls.Of
foreach(var cmd in this.Controls.OfType<Button>())
{
cmd.Enabled = true;
}
foreach(此.Controls.OfType()中的var cmd)
{
cmd.Enabled=true;
}
这是正确的解决方案吗
foreach(var gb in this.Controls.OfType<GroupBox>())
{
foreach (var cmd in gb.Controls.OfType<Button>())
{
cmd.Enabled = true;
}
}
foreach(this.Controls.OfType()中的var gb)
{
foreach(gb.Controls.OfType()中的var cmd)
{
cmd.Enabled=true;
}
}
为了获得所需的按钮
实例,您必须访问每个分组框中的控件
属性
您提出的解决方案确实有效,但您可以使用LINQ的SelectMany
链接此解决方案:
foreach (var button in Controls.OfType<GroupBox>()
.SelectMany(groupBox => groupBox.Controls.OfType<Button>()))
{
button.Enabled = true;
}
foreach(Controls.OfType()中的var按钮)
.SelectMany(groupBox=>groupBox.Controls.OfType())
{
button.Enabled=true;
}
如果按钮位于其他控件中,则需要递归控件集合,直到找到它们为止。我添加了解决方案,可以吗?看起来不错,尝试时会发生什么?有效;)但贝娄·阿德里安给出了它也能工作的最终代码。哪一个更好?解决方案基本相同。选择你更了解的那个。它有效;)什么是更好的解决方案?我的还是你的?