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; }
源码下载: