Вам нужно захватить оригинал. Если у вас есть кнопка, которая вычисляет 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;