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

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

 

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

 

源碼下載:測試

VoidableRadioButtonthis

相關文章
相關標籤/搜索