radiobutton的CheckedChanged事件与Click事件
- C# code
private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked) { clsGridStyle.rdo1(); clsCellCompute.rdo1(); clsStatistics.rdo1(); ListGrid.OwnerDrawCell += new FlexCell.Grid.OwnerDrawCellEventHandler(clsDrawImage.rdo1); ListGrid.MouseDown += new FlexCell.Grid.MouseDownEventHandler(clsMouseDown.rdo1); ListGrid.MouseDoubleClick += new MouseEventHandler(clsMouseDoubleClick.rdo1); } else { ListGrid.OwnerDrawCell -= new FlexCell.Grid.OwnerDrawCellEventHandler(clsDrawImage.rdo1); ListGrid.MouseDown -= new FlexCell.Grid.MouseDownEventHandler(clsMouseDown.rdo1); ListGrid.MouseDoubleClick -= new MouseEventHandler(clsMouseDoubleClick.rdo1); } }
rdo1,rdo2,rdo3,rdo4.....最初都是用的CheckedChanged事件
现改为用Click事件
- C# code
private void radioButton1_Click(object sender, EventArgs e) { if (radioButton1.Checked) { clsGridStyle.rdo1(); clsCellCompute.rdo1(); clsStatistics.rdo1(); ListGrid.OwnerDrawCell += new FlexCell.Grid.OwnerDrawCellEventHandler(clsDrawImage.rdo1); ListGrid.MouseDown += new FlexCell.Grid.MouseDownEventHandler(clsMouseDown.rdo1); ListGrid.MouseDoubleClick += new MouseEventHandler(clsMouseDoubleClick.rdo1); } else { ListGrid.OwnerDrawCell -= new FlexCell.Grid.OwnerDrawCellEventHandler(clsDrawImage.rdo1); ListGrid.MouseDown -= new FlexCell.Grid.MouseDownEventHandler(clsMouseDown.rdo1); ListGrid.MouseDoubleClick -= new MouseEventHandler(clsMouseDoubleClick.rdo1); } }
但是在rdo1、rdo2、rdo3....切换时,发现
- C# code
ListGrid.OwnerDrawCell -= new FlexCell.Grid.OwnerDrawCellEventHandler(clsDrawImage.rdo1); ListGrid.MouseDown -= new FlexCell.Grid.MouseDownEventHandler(clsMouseDown.rdo1); ListGrid.MouseDoubleClick -= new MouseEventHandler(clsMouseDoubleClick.rdo1);
没有执行,绘制的图片线条,发生了叠加
CheckedChanged事件 与 Click 事件有什么不同吗?如何解决呢?
[解决办法]
这是单选框,你点击它选中后,再次点击不会发生 Checked的变换