我有一组单选按钮,其中两个需要在允许更改值之前用确认对话框提示用户。为此,我处理了click事件,并在每个单选按钮上将AutoCheck属性设置为false。但是,当我在单击的RadioButton上将check属性设置为true时,不再取消选中先前选择的RadioButtons。

现在,我只是循环浏览此面板上的控件,并确保没有选中其他RadioButton,但是有没有更有效的方法呢?

最佳答案

您可以使用一些variable存储最后检查的单选按钮:

//first, you have to set the lastChecked = radioButton1 (or another of your radioButtons)
RadioButton lastChecked;
//Click event handler used for all the radioButtons
private void RadiosClick(object sender, EventArgs e)
{
   RadioButton radio = sender as RadioButton;
   if (radio != lastChecked){
      radio.Checked = true;
      lastChecked.Checked = false;
      lastChecked = radio;
   }
   //else radio.Checked = !radio.Checked;
}


如果要允许用户uncheck广播(非常奇怪的行为),只需在上面的代码中的//子句之前删除else

09-11 20:14