C#中RadioButton取消选中设置
今天写一个程序的时候,用到RadioButton控件,需要做取消的操作,当个的RadioButton选中状态下是无法进行取消的。于是想着在Click事件中写以下代码:
private void rdbOnEncodeForAlphabetAandNum_Click(object sender, EventArgs e) { //MessageBox.Show(rdbOnEncodeForAlphabetAandNum.Checked.ToString()); if( rdbOnEncodeForAlphabetAandNum.Checked) { rdbOnEncodeForAlphabetAandNum.Checked = false; } else { rdbOnEncodeForAlphabetAandNum.Checked = true; } }
但是无论如何点击,始终显示无法选中单选按钮!于是使用MessageBox.Show,查看值,发现每次只要单击,Checked值都是被设置成了True,所以,不能通过判断Checked来设置Chcked自己的值,在外部加入一个标志值即可,通过外部变量记录Checked上次的值,然后不断的切换状态:
bool rdbcheck = false; //这里面有坑 private void rdbOnEncodeForAlphabetAandNum_Click(object sender, EventArgs e) { //MessageBox.Show(rdbOnEncodeForAlphabetAandNum.Checked.ToString()); if(rdbcheck) { rdbOnEncodeForAlphabetAandNum.Checked = false; rdbcheck = false; } else { rdbOnEncodeForAlphabetAandNum.Checked = true; rdbcheck = true; } }
效果如下图: