首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NumericUpDown价值*价格附加

NumericUpDown价值*价格附加
EN

Stack Overflow用户
提问于 2019-10-27 23:14:20
回答 2查看 90关注 0票数 2

我正在创建一个比萨饼菜单,我在我的windows窗体应用程序上有numericUpDown对象,当我将Cheese Pizza的numericUpDown值更改为1时,它会输出in 3.50到总账单标签中,但是当我更改火腿比萨的numericUpDown值时,它会将标签中的文本替换为in 4.20。当我有1x Cheese Pizza和1x Ham Pizza时,如何将总数相加,得出1x Cheese Pizza和1x Ham Pizza的£7.70

代码语言:javascript
复制
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);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-27 23:20:27

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

代码语言:javascript
复制
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}";
}
票数 3
EN

Stack Overflow用户

发布于 2019-10-27 23:17:19

您每次都会覆盖您的合计。当您添加项目时,请随身携带。

简单的例子

代码语言:javascript
复制
    Total = Total + (Convert.ToDouble(NudQuantity2.Value) * Price_HamPizza)

使用它可以让它工作,无论商品的数量或订购顺序如何。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58580639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档