Как сгруппировать переключатели, представленные на разных панелях, в одну группу? - PullRequest
2 голосов
/ 20 сентября 2019

Я должен сгруппировать RadioButton с присутствующими в разных Panel с в виде одной группы .Например, у меня есть RadioButton с именем radBtn1 на panel1 и radBtn2 и radBtn2 на panel2.Теперь я хочу сгруппировать все эти переключатели в виде одиночной группы , чтобы только один RadioButton проверялся за раз.

1 Ответ

1 голос
/ 20 сентября 2019

Мы можем попробовать снять отметку RadioButton s вручную .Давайте назначим RadioButtons_CheckedChanged обработчик событий для all RadioButtons интереса:

private void RadioButtons_CheckedChanged(object sender, EventArgs e) {
  // If we have a RadioButton Checked 
  if (sender is RadioButton current && current.Checked) {
    // We should remove Check from the rest RadioButtons:
    var rest = new Control[] { panel1, panel2} 
      .SelectMany(ctrl => ctrl             // all radiobuttons on panel1, panel2
         .Controls
         .OfType<RadioButton>())
      .Where(button => button != current); // don't touch current it should stay checked

    foreach (var button in rest)
      button.Checked = false;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...