所以我有一個簡單的表單,用戶可以輸入一個double值。在C中使用windows窗體的非數字文本框的異常處理#
這是我的形式應該是什麼樣子。
然而,如果用戶有意或無意地進入非數值它將給我一個錯誤:
Input String was not correct format
我聽說了一個辦法做到這一點,這就是所謂的異常處理。我如何製作自己的錯誤消息,以便程序不會崩潰?
所以我有一個簡單的表單,用戶可以輸入一個double值。在C中使用windows窗體的非數字文本框的異常處理#
這是我的形式應該是什麼樣子。
然而,如果用戶有意或無意地進入非數值它將給我一個錯誤:
Input String was not correct format
我聽說了一個辦法做到這一點,這就是所謂的異常處理。我如何製作自己的錯誤消息,以便程序不會崩潰?
,如果你想使用異常,您可以使用下面的代碼:
try
{
Double d = Double.Parse(textBox1.Text);
}
catch (FormatException)
{
MessageBox.Show("Your custom message");
}
使用double.TryParse()...
private void button1_Click(object sender, EventArgs e)
{
double dbl;
if (double.TryParse(textBox1.Text, out dbl))
{
// ... do something with "dbl" in here ...
}
else
{
MessageBox.Show(textBox1.Text, "Please enter a valid double!");
}
}
好吧,它的工作,但由於某種原因,如果我按了輸入按鈕錯誤的答案,它會繼續作爲一個零值。我的程序的目的是讓用戶輸入10個值。但即使用戶只是按下輸入鍵,它仍然會算作一個計數。我如何解決這個問題? – puretppc
這將更關聯於您將值轉換爲雙倍值後的值。我們無法看到該代碼。我會特別提出另一個問題,並顯示您的更新代碼。 –
關於閱讀一些文檔如何? http://msdn.microsoft.com/en-us/library/ms173160.aspx –
我假設你正在使用許多'Parse'方法之一將字符串轉換爲數字。而是使用'TryParse'。如果它不能轉換它,它不會崩潰。 –
Egad。雖然你可能正在學習異常處理,但是一旦你這樣做了,請不要以這種方式使用它。通常情況下,不要使用異常和消息框來響應用戶輸入,而是可以限制輸入並呈現非中斷消息。例如,您可以處理TextBox事件以忽略非數字鍵,並且如果需要,按下非數字鍵時可以顯示警告消息。在這個早期階段,這樣的考慮可能爲時過早,但在您瞭解UI開發的過程中,請記住它們。祝你好運! – Rethunk