我如何在Winforms中预备所有按钮(许多组框)

时间:2019-06-04 18:24:19

标签: c# winforms

我在三个groupbox(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;
    }
}

1 个答案:

答案 0 :(得分:3)

您必须访问每个Controls中的GroupBox属性,才能获得所需的Button实例。

您提出的解决方案确实有效,但是您可以使用LINQ的SelectMany将此链接代替:

foreach (var button in Controls.OfType<GroupBox>()
      .SelectMany(groupBox => groupBox.Controls.OfType<Button>()))
{
    button.Enabled = true;
}