我有一组单选按钮,其中两个需要在允许更改值之前用确认对话框提示用户。为此,我处理了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
。