Как я могу использовать все кнопки в winforms (много групповых блоков) - PullRequest
0 голосов
/ 04 июня 2019

У меня 6 кнопок в трех групповых окнах (groupbox1 и т. Д.).Все в форме1 И я пытаюсь включить все .. но ничего не происходит

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 Ответ

3 голосов
/ 04 июня 2019

Вам необходимо получить доступ к Controls свойствам внутри каждого GroupBox, чтобы получить нужные Button экземпляры.

Предлагаемое вами решение работает, но вы можете использовать LINQ SelectMany, например:

foreach (var button in Controls.OfType<GroupBox>()
      .SelectMany(groupBox => groupBox.Controls.OfType<Button>()))
{
    button.Enabled = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...