我有一组单选按钮,其中两个需要在允许更改值之前通过确认对话框提示用户。为此,我处理了单击事件并将每个单选按钮的 AutoCheck 属性设置为 false。但是,当我在单击的 RadioButton 上将 check 属性设置为 true 时,之前选择的 RadioButtons 不再取消选中。
现在我只是循环浏览这个面板上的控件并确保没有检查其他 RadioButtons,但是有没有更有效的方法来做到这一点?
我有一组单选按钮,其中两个需要在允许更改值之前通过确认对话框提示用户。为此,我处理了单击事件并将每个单选按钮的 AutoCheck 属性设置为 false。但是,当我在单击的 RadioButton 上将 check 属性设置为 true 时,之前选择的 RadioButtons 不再取消选中。
现在我只是循环浏览这个面板上的控件并确保没有检查其他 RadioButtons,但是有没有更有效的方法来做到这一点?
您可以使用 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
子句。