[英]C# Winform Textbox Validation Error
我有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。计算不正确。 有人可以帮我吗?
处理金钱时,通常最好使用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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.