2011-01-05 76 views
2

这就是我正在做的事情,它会导致堆栈溢出,因为它只是永远地来回切换。在WinForms中切换单选按钮

private void radioButtonA_CheckedChanged(object sender, EventArgs e) 
    { 
     radioButtonB.Checked = !radioButtonB.Checked; 
    } 

    private void radioButtonB_CheckedChanged(object sender, EventArgs e) 
    { 
     radioButtonA.Checked = !radioButtonA.Checked; 
    } 

必须有更好的方法来做到这一点...

回答

4

尝试注释掉所有代码,看看它是否工作,你想要的方式。 您不必取消选中代码中的其他单选按钮

+0

哇,这很容易,谢谢! – sooprise 2011-01-05 17:05:02

1

您可以在更改Checked值之前禁用代码中的事件,然后在之后立即再次添加它。

1

它是否切换“One”单选按钮你正在尝试做什么?如果是这样,我尝试了这个,它适用于我:

将Radio Button的AutoCheck属性设置为FALSE。

为单选按钮创建一个“单击”事件。

在Click事件处理程序单选按钮粘贴代码:

radioButton.Checked = radioButton.Checked;

我希望这会有所帮助。