我有两个文本框,我不想使用第三个文本框来显示结果。
方案是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");
}
无论如何要完成我上面所述的工作吗?
答案 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();
}