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

        }

效果如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM