C#窗体文本框验证错误
本文关键字:验证 错误 文本 窗体 | 更新日期: 2023-09-27 18:21:10
我有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
中按退格键(或清除数据)时,我都会出现格式错误。当我把一个字母放进去时,我也会遇到一个错误。如果用户输入了一个字母,当数据被清除时,我该如何防止它出现一个遗嘱?此外,当我为前设置更大的值时,会出现另一个错误
支付金额=600,我输入=1000,余额文本框=550,更改文本框=330。它计算不正确。有人能帮我吗?
在处理货币时,通常最好使用Decimal
类型而不是Integer
,但对于您的示例,可能最好使用TryParse()
方法而不是Parse
。发生格式错误是因为当您退格时,文本框为空,解析失败。
快速返工:
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();
}