RadioButton和开关

Wil*_*orn 4 c# switch-statement winforms

我有很多单选按钮,所以我最终得到的代码看起来像这样

if (rbFrenchImp.Checked)
{
}
else if (rbFrenchMet.Checked)
{
}
else if (rbEnglishImp.Checked)
{
}
else if (rbFrenchEuro.Checked)
{
}
//etc...
Run Code Online (Sandbox Code Playgroud)

所以我想知道,是否可以使用带单选按钮的开关盒?如果有,怎么样?

Liv*_* M. 6

是的你可以:

您将相同的CheckChanged(或类似)事件处理程序订阅到每个单选按钮.然后你把这样的代码:

RadioButton btn = sender as RadioButton;
if(btn!= null && btn.IsChecked)
{
   Switch(btn.Name)
   {
      case "rbFrenchImpl":
      break;
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

这适用于所有类型的框架.

  • 荡.这让我们对单选按钮名称进行了硬编码. (5认同)
  • 2017签到 - 您现在可以在案例中使用nameof(rbFrenchImpl)! (2认同)