我有4 textboxes
:
最后textbox
用于输入(获取/输入客户的钱)。
我已将我的代码放入textBoxInput的TextChanged
处理程序中(我想每次用户在该文本框上输入内容时都会自动更新):
private void textBoxInput_TextChanged(object sender, EventArgs e)
{
textBoxMoney.Text = textBoxInput.Text;
if (int.Parse(textBoxAmount.Text) > int.Parse(textBoxMoney.Text))
{
int balance = int.Parse(textBoxAmount.Text) - int.Parse(textBoxMoney.Text);
textBoxBalance.Text = balance.ToString();
}
if (int.Parse(textBoxMoney.Text) > int.Parse(textBoxAmount.Text))
{
int change = int.Parse(textBoxMoney.Text) - int.Parse(textBoxAmount.Text);
textBoxChange.Text = change.ToString();
}
}
它运行正常,但每当我按textbox
中的退格键(或清除数据)时,我都会收到格式错误。当我写一封信时,我也会收到错误。如果用户输入一个字母并清除数据,如何防止它出现?此外,当我为ex。
支付金额= 600,我输入= 1000,余额文本框= 550,更改文本框= 330.它无法正确计算。有人可以帮我吗?
答案 0 :(得分:3)
在处理资金时,通常最好使用Decimal
类型而不是Integer
,但就您的示例而言,最好使用TryParse()
方法而不是Parse
方法1}}。发生格式错误的原因是当您退格时,文本框为空并且解析失败。
快速返工:
private void textBoxInput_TextChanged(object sender, EventArgs e) {
textBoxMoney.Text = textBoxInput.Text;
int amount = 0;
int money = 0;
int balance = 0;
int change = 0;
int.TryParse(textBoxAmount.Text, out amount);
int.TryParse(textBoxMoney.Text, out money);
if (amount > money)
balance = amount - money;
if (money > amount)
change = money - amount;
textBoxBalance.Text = balance.ToString();
textBoxChange.Text = change.ToString();
}