单选按钮选择和取消选中

本文关键字:取消 选择 单选按钮 | 更新日期: 2023-09-27 18:32:54

我有 2 个单选按钮,它们假设生成两种不同颜色的矩形,简单地说,当用户选择单选按钮一个时,它应该生成一个红色矩形,如果用户选择单选按钮二,它应该创建一个蓝色矩形。

我的问题是在选择单选按钮 1(创建矩形)后,如果用户选择单选按钮 2,它会创建另一个红色矩形,然后创建一个蓝色矩形(这是正确的),但问题是当用户选择 2 时,它不应该创建另一个红色矩形。我想取消选中有问题,但我找不到合适的解决方案。这是我为单选按钮所做的:-

    private void rbOne_CheckedChanged(object sender, EventArgs e)
    {
        if (rbOne.Checked)
        {
            status = rbOne.Text;
            buff.write(Color.Red, status);
        }
    }
    private void rbTwo_CheckedChanged(object sender, EventArgs e)
    {
        if (rbTwo.Checked)
        {
            status = rbTwo.Text;
            buff.write(Color.Blue, status);
        }
    } 

这里似乎有什么问题?

谢谢你的时间。

单选按钮选择和取消选中

您必须在两个单选按钮检查更改事件中检查单选按钮选择,并且需要先取消选中另一个。看看这里

private void rbOne_CheckedChanged(object sender, EventArgs e)
    {
        if (rbTwo.Checked)
        {
         // make it uncheck  and remove the red rectangle
        } 
        {
        if (rbOne.Checked)
        {
            status = rbOne.Text;
            buff.write(Color.Red, status);
        }
    }
private void rbTwo_CheckedChanged(object sender, EventArgs e)
{
    if (rbOne.Checked)
    {
     // make it uncheck  and remove the blue rectangle
    } 
    if (rbTwo.Checked)
    {
        status = rbTwo.Text;
        buff.write(Color.Blue, status);
    }
} 

或者,您可以先检查每个单选按钮已检查的属性(如果选中了一个),则不要创建另一个矩形。