2

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

现在我只是循环浏览这个面板上的控件并确保没有检查其他 RadioButtons,但是有没有更有效的方法来做到这一点?

4

1 回答 1

1

您可以使用 somevariable来存储最后选中的单选按钮:

//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使用收音机(一种非常奇怪的行为),只需删除上面代码中的//beforeelse子句。

于 2013-08-23T15:21:18.463 回答