[英]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.