Winform 可取消的單選按鈕(RadioButton)


在項目當中有一組選擇項,要求單選並且可以取消,但Winform提供的單選按鈕一旦選擇上就不能取消了,經過研究和測試,總算搞定了功能的要求,主要代碼如下,就不一一說明了,代碼里有注釋,給有需要的朋友一個參考,Demo在下面。

 

private bool checkedStatus = false;
        /// <summary>
        /// 當前按鈕選擇狀態,true已選擇
        /// </summary>
        public bool CheckedStatus
        {
            get {
                return checkedStatus;
            }
            set {
                checkedStatus = value;
            }
        }

        public VoidableRadioButton()
            : base()
        { }

        protected override void OnCheckedChanged(EventArgs e)
        {
            base.OnCheckedChanged(e);
            if (!this.Checked)
            {
                checkedStatus = false;
            }
        }

        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);
            if (checkedStatus)
            {
                this.Checked = false;
                //Checked=false觸發了CheckedChanged,所以這里應該把狀態重置為true
                checkedStatus = true;
            }
            checkedStatus = !checkedStatus;
        }
View Code

 

源碼下載:

VoidableRadioButton


免責聲明!

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



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