C# 如何在单击另一个单选按钮时从一个单选按钮还原更改C

C# 如何在单击另一个单选按钮时从一个单选按钮还原更改C,c#,radio-button,C#,Radio Button,我有两个单选按钮。一个值加1,另一个值加11到最终总数。我将它们都分组在一个面板中。当我选择其中一个按钮时,它会正确地添加值,但当我在选择第一个按钮后选择另一个单选按钮时,它会将新值添加到最终总数中,而不会忽略第一个单选按钮的选择。是否有一行简单的代码可以忽略第一个选择 如果不了解基于web/desktop的应用程序和代码,很难回答这个问题。但我看到两种选择 将原始值保留在某个位置,然后在单选按钮上选择“添加到原始值”以获得总值 减去“其他”单选按钮的值,然后为当前选择添加值以获得总计 可以将添

我有两个单选按钮。一个值加1,另一个值加11到最终总数。我将它们都分组在一个面板中。当我选择其中一个按钮时,它会正确地添加值,但当我在选择第一个按钮后选择另一个单选按钮时,它会将新值添加到最终总数中,而不会忽略第一个单选按钮的选择。是否有一行简单的代码可以忽略第一个选择

如果不了解基于web/desktop的应用程序和代码,很难回答这个问题。但我看到两种选择

将原始值保留在某个位置,然后在单选按钮上选择“添加到原始值”以获得总值 减去“其他”单选按钮的值,然后为当前选择添加值以获得总计
可以将添加的值添加到初始化为0的变量中


无论何时单击单选按钮,从添加到最终总数的值中减去变量的值。

您可以像下面这样使用,如果您发布正在使用的代码,我将给出更清晰的输出

  double total = Convert.ToDouble(txtTotal.Text);
  //On Radiobutton1's click
  if(radio1.Checked)  
  txtTotal.Text = Convert.ToString(total + 1);
  //On Radiobutton2's click
  if (radio2.Checked)  
  txtTotal.Text =Convert.ToString( total + 11);

使用一种方法找到最终总数,并将该方法的值1或11相加。比如:

public void final()
{
    if(radiobtn1.Checked)
        finalTotal=grandTotal+1;
    else if(radiobtn2.Checked)
        finalTotal=grandTotal+11;
}
或者,您可以通过这些单选按钮的单击事件来执行此操作。这将找到每次的最终总数。如果您有更多的计算要做,我建议使用一个单独的方法,如上所示

编辑:

根据您的代码:

int playerCardFinalTotal = 0;
int pcFinalTotal = 0;

private void btnChangeValue_Click(object sender, EventArgs e)
{        
    if (rdbOne.Checked)
    {
        pcFinalTotal = playerCardFinalTotal + 1;
    }
    else if (rdbEleven.Checked)
    {
        pcFinalTotal = playerCardFinalTotal + 11;
    }
}
变化:

您可以使用.Checked本身而不是==true和!rdbOne.Checked代替==false只是提示 使用另一个变量pcFinalTotal存储总值。每次单击这些单选按钮时,它都将重置为正确的值。
我尝试创建一个更改按钮,只需减去所选按钮的值

private void btnChangeValue_Click(object sender, EventArgs e)
{            

    if (rdbOne.Checked == true)
    {
        playerTallyTotals(-1);
        rdbOne.Checked = false;
        pnlValues.Enabled = true;
    }

    else if (rdbEleven.Checked == true)
    {
        playerTallyTotals(-11);
        rdbEleven.Checked = false;
        pnlValues.Enabled = true;
    }
}
它被传递到:

int playerCardFinalTotal = 0;
private void playerTallyTotals(int playerCardTotalx)
{            
    playerCardFinalTotal = playerCardFinalTotal + playerCardTotalx;
}

始终保持原始值:

int total = someValue;
int finalTotal;
private void radioEvent(object sender, EventArgs e)
{
    if(radioOne.Checked)
    {
        finalTotal = total + 1;
    }
    if(radioTwo.Checked)
    {
        finalTotal = total + 11;
    }
}

提交结果时,您将使用最终值。

请发布您的代码,然后根据单选按钮从总数中减去1或11,然后再添加?@DmitryBychenko这将导致第一次单击时的状态不正确。但是,是的,是这样的。@Dimitry:第一次单击时会给出错误的输出当我选择1时,它会将1正确地添加到最终总数中,但当我单击“更改”按钮时,它会扣除10,而不是1。