[英]How do i subtract discount text box from total text box more than one time?
我有总文本框和折扣文本框,我需要从总价值中减去折扣,问题是如何将总价值保存在变量中,并在我多次输入折扣时从总价值中减去折扣,例如:
总价值 = 500 和折扣 = 100 那么总价值 = 500 - 100 = 400 。 我需要解决的情况假设我需要添加更多折扣或将折扣值从 100 更改为 200 我将如何对其进行编程以减去 500 - 200 = 300 而不是 400 - 200 = 200 。
我尝试了以下代码文本框键
private void txtdiscount_KeyPress(object sender, KeyPressEventArgs e)
{
decimal total = Convert.ToDecimal(textOrderTotal.Text);
decimal discount = Convert.ToDecimal(txtdiscount.Text);
if (e.KeyChar == Convert.ToChar(Keys.Return))
{
total = Convert.ToDecimal(textOrderTotal.Text) - Convert.ToDecimal(txtdiscount.Text);
textOrderTotal.Text = total.ToString();
}
}
我如何从总计中减去超过一次的折扣,以及如何防止折扣值等于或大于总值?
您需要捕获原始总计。 如果你有一个计算Total
的按钮,你可以使用
private decimal _originalTotal = 0;
private void btnCalculate_Click(object sender, EventArgs e)
{
_originalTotal = decimal.Parse(textOrderTotal.Text);
}
或者,如果手动输入Total
本身,
private decimal _originalTotal = 0;
private void textOrderTotal_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Return || e.KeyCode == Keys.Tab)
{
_originalTotal = decimal.Parse(textOrderTotal.Text);
}
}
这个想法是在应用折扣之前捕获原始总数。 现在,您可以将折扣应用为
private void txtdiscount_KeyPress(object sender, KeyPressEventArgs e)
{
decimal total = _originalTotal;
decimal discount = Convert.ToDecimal(txtdiscount.Text);
if (e.KeyChar == Convert.ToChar(Keys.Return))
{
total = _originalTotal - discount;
textOrderTotal.Text = total.ToString();
}
}
请注意,您需要根据之前捕获的Original Total
进行计算。 还要注意 OP 中的以下代码
total = Convert.ToDecimal(textOrderTotal.Text) - Convert.ToDecimal(txtdiscount.Text);
您已经在方法的前两行将两个文本框中的Text
转换为十进制。 您可以重用它们而不是再次转换。 在这种情况下,我们将改用捕获的原始总数。
total = _originalTotal - discount;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.