如何在单击另一个单选按钮时恢复对一个单选按钮的更改

本文关键字:单选按钮 一个 单击 另一个 恢复 | 更新日期: 2023-09-27 18:11:35

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

如何在单击另一个单选按钮时恢复对一个单选按钮的更改

您可以像下面这样使用,如果您发布您正在使用的代码,我会给出更明确的输出。

  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;
}

或者您可以从这些单选按钮的click事件中执行。这将找到每次的最终总数。如果您有更多的计算要做,我建议使用如上所示的单独方法。

编辑:

按照你的代码:

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;
    }
}

变化:

  1. 您可以使用.Checked本身而不是==true!rdbOne.Checked而不是==false(只是提示)
  2. 使用另一个变量pcFinalTotal来存储Total Value。每次点击这些单选按钮,它都会重置为正确的值。

在不了解应用程序(基于web/桌面)和代码的情况下很难回答。但是我看到两个选项

  • 保留原始值,并在单选按钮选择上添加原始值以获得总数
  • 减去其他单选按钮的值,然后加上当前选择的值,得到总数

您可以将添加的值添加到初始化为0(零)的变量中。

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

始终保持原始值:

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

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

我尝试创建一个更改按钮,只是减去所选按钮的值。

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;
}