由于 RadioButton 在C# WinForm中需要用Panel或者GroupBox来分组
对于界面上如果比较多的选择类型的信息,就不是很方便
所以想重写一下 RadioButton,在其中添加一个 Group 的属性,
然后修改 OnClick 方法 来对其修改以达到分组的目的,代码如下:
但是与没有重写时的效果一样
对这个不熟悉,请XD们帮忙看看如何写才是正确的。
protected override void OnClick(System.EventArgs e)
{
if (m_group == "")
{
base.OnClick(e);
}
else
{
foreach (Control ctrl in Parent.Controls)
{
if (ctrl is LEDradioButton)
{
if(((LEDradioButton)ctrl).Group == this.Group)
((LEDradioButton)ctrl).Checked = false;
}
}
this.Checked = true;
}
Invalidate();
}
对于界面上如果比较多的选择类型的信息,就不是很方便
所以想重写一下 RadioButton,在其中添加一个 Group 的属性,
然后修改 OnClick 方法 来对其修改以达到分组的目的,代码如下:
但是与没有重写时的效果一样
对这个不熟悉,请XD们帮忙看看如何写才是正确的。
protected override void OnClick(System.EventArgs e)
{
if (m_group == "")
{
base.OnClick(e);
}
else
{
foreach (Control ctrl in Parent.Controls)
{
if (ctrl is LEDradioButton)
{
if(((LEDradioButton)ctrl).Group == this.Group)
((LEDradioButton)ctrl).Checked = false;
}
}
this.Checked = true;
}
Invalidate();
}
this.Checked
这里的 this 表示的当前窗体吧
窗体哪里来的 Group 和 Checked ?
{
protected override void OnClick(System.EventArgs e)
{
if (m_group == "")
{
base.OnClick(e);
}
else
{
foreach (Control ctrl in Parent.Controls)
{
if (ctrl is LEDradioButton)
{
if(((LEDradioButton)ctrl).Group == this.Group)
((LEDradioButton)ctrl).Checked = false;
}
}
this.Checked = true;
}
Invalidate();
}}
protected override void OnClick(System.EventArgs e)
{
MyRadioButton mrButton = (MyRadioButton)e.Item;
if( mrButton.strCommand != string.Empty )
{
base.OnClick(e);
}
else
……//以下自己修改下试试