NumericUpDown 值 * 价格加法

NumericUpDown Value * price addition

我正在创建一个披萨菜单,我的 windows 表单应用程序上有 numericUpDown 对象,当我将 Cheese Pizza 的 numericUpDown 值更改为 1 时,它会在总账单标签中输出 £3.50 ,但是当我更改 Ham Pizza 的 numericUpDown 值时,它会将标签中的文本替换为 4.20 英镑。当我有 1 个奶酪披萨和 1 个火腿披萨时,我如何将总数加在一起得到 7.70 英镑以获得 1 个奶酪披萨和 1 个火腿披萨

private void NudQuantity1_ValueChanged(object sender, EventArgs e)
{
  if (NudQuantity1.Value == 0)
  {
    gbCheesePizza.Enabled = false;
  }
  else
  {
    gbCheesePizza.Enabled = true;
  }
  Total = Convert.ToDouble(NudQuantity1.Value) * Price_CheesePizza;
  lblTotalBill.Text = String.Format("{0:C}", Total);
}

private void NudQuantity2_ValueChanged(object sender, EventArgs e)
{
  if (NudQuantity2.Value == 0)
  {
    gbHamPizza.Enabled = false;
  }
  else
  {
    gbHamPizza.Enabled = true;
  }
  Total = Convert.ToDouble(NudQuantity2.Value) * Price_HamPizza;
  lblTotalBill.Text = String.Format("{0:C}", Total);
}

您每次都在覆盖总数。添加项目时随身携带。

简单示例

    Total = Total + (Convert.ToDouble(NudQuantity2.Value) * Price_HamPizza)

不管物品的数量或订购的顺序如何,都可以使用它。

两个事件都应该调用一个通用方法来重新计算两个数量的总数

private void NudQuantity1_ValueChanged(object sender, EventArgs e)
{

    gbCheesePizza.Enabled = !(NudQuantity1.Value == 0)
    UpdateTotal();

}

private void NudQuantity2_ValueChanged(object sender, EventArgs e)
{
    gbHamPizza.Enabled = !(NudQuantity2.Value == 0)
    UpdateTotal();
}
private void UpdateTotal()
{
    Total = Convert.ToDouble(NudQuantity1.Value) * Price_CheesePizza;
    Total += Convert.ToDouble(NudQuantity2.Value) * Price_HamPizza;
    lblTotalBill.Text = $"{Total:C}";
}