将旧值返回到第一个文本框中

时间:2016-12-03 11:11:21

标签: c# winforms

我有两个文本框,我不想使用第三个文本框来显示结果。 方案是textbox1为totalFeetextbox,textBox2为DiscountTextBox。 我希望用户在discountTextBox中输入金额并在TotalFeeTextBox中查看结果,当用户删除金额时,TotalFeeTextbox应显示原始金额,即计算前的旧金额。

这是我在textChanged事件上尝试的代码之一:

try 
{
    String tempStore = TotalFeeTextBox.Text;

    if (DiscountTextBox.Text.Length != 0) 
    {
        TotalFeeTextBox.Text = (TotalFeeTextBox.Text - DiscountTextBox.Text).toSting();
    }
    else
    {
        TotalFeeTextBox.Text = tempStore;
    }
} 
catch (ApplicationException ex) 
{
    //Catch error if one is still thrown after above code; Not pretty, exceptions are costly performance wise.
    MessageBox.Show("ERROR" + ex.Message, "ERROR");
}

无论如何要完成我上面所述的工作吗?

1 个答案:

答案 0 :(得分:0)

您编写的代码存在一些问题。首先,您将字符串视为数字,然后使用文本框来存储值。你应该使用变量。以下代码将接近您的需求。

首先添加两个属性并用所需的值填充它们

float total;
float discount;

然后使用下面的函数

处理DiscountTextBox中的文本更改事件
private void DiscountTextBox_TextChanged(object sender, EventArgs e)
{
    if(!string.IsNullOrEmpty(DiscountTextBox.Text))
    {
        discount = float.Parse(DiscountTextBox.Text);
    }
    else
    {
        discount = 0;
    }

    TotalFeeTextBox.Text = (total - discount).ToString();
}