簡體   English   中英

C#驗證事件:是否測試空白文本框和數字驗證?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM