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;
            }
         

        }

效果如下图:

 

posted @ 2018-09-26 17:14  随时静听  阅读(10080)  评论(0编辑  收藏  举报