我正在创建一个比萨饼菜单,我在我的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
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);
}发布于 2019-10-27 23:20:27
这两个事件都应该调用一个公共方法来重新计算两个数量的总和
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}";
}发布于 2019-10-27 23:17:19
您每次都会覆盖您的合计。当您添加项目时,请随身携带。
简单的例子
Total = Total + (Convert.ToDouble(NudQuantity2.Value) * Price_HamPizza)使用它可以让它工作,无论商品的数量或订购顺序如何。
https://stackoverflow.com/questions/58580639
复制相似问题