在项目当中有一组选择项,要求单选并且可以取消,但Winform提供的单选按钮一旦选择上就不能取消了,经过研究和测试,总算搞定了功能的要求,主要代码如下,就不一一说明了,代码里有注释,给有需要的朋友一个参考,Demo在下面。
class="code_img_closed" src="/Upload/Images/2013080215/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('f39d6172-5a9b-4bd9-9836-aa50753213a0',event)" src="/Upload/Images/2013080215/2B1B950FA3DF188F.gif" alt="" />
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