[英]C# Validating event: test for blank textbox and number validation?
因此,我試圖創建一個驗證事件,以確保文本框不為空並且輸入的數字不超過2000。我已經發布了我所擁有的,但是每次運行它時,都會收到一條消息,指出異常未處理,因為“ kwh = decimal.Parse(khtextBox.Text)”輸入的格式不正確。 我有它的方式,如果數量超過2000,則驗證有效,但如果文本框為空白,則驗證無效。 我究竟做錯了什么? 編程也是新手,因此請像正在與3歲孩子聊天一樣進行解釋! 謝謝 :)
private void khtextBox1_Validating(object sender, CancelEventArgs e)
{
decimal kwh;
kwh = decimal.Parse(khtextBox1.Text);
bool blank = false;
if (blank)
{
MessageBox.Show("Please enter a valid number.");
}
if (kwh > 2000)
{
MessageBox.Show("Kilowatt-Hours cannot exceed 2000.");
e.Cancel = true;
}
}
嘗試使用decimal.TryParse
方法,該方法嘗試將string
轉換為十進制,如果轉換成功,則返回bool值,例如:
decimal kwh;
if (!decimal.TryParse(khtextBox1.Text, out kwh)) // check if the conversion has failed
{
MessageBox.Show("Please enter a valid number.");
e.Cancel = true;
}
else // conversion ok, you can use the kwh value
{
if (kwh > 2000)
{
MessageBox.Show("Kilowatt-Hours cannot exceed 2000.");
e.Cancel = true;
}
}
您清楚地提到了自己的問題所在。 輸入必須是可以轉換為十進制數字的值。
輸入錯誤似乎是一個問題。 您可以嘗試使用TryParse代替,還是可以簡單地將第二個“ if”塊更改為“ else if”。
decimal outputKWH;
kwh = decimal.TryParse(khtextBox.Text, out outputKWH)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.