2013-05-15 90 views
-3

我在c#中的窗體中出現問題。該計劃很簡單, 有3個文本框,然後它將它們的值相加。然而,當我點擊總和按鈕而沒有在其他3個文本框中輸入任何值時,程序崩潰。當沒有輸入任何值時,我的程序崩潰

如何讓這些文本框只接受正數和零? 這是我做過什麼

private void button1_Click(object sender, EventArgs e) 
    { 
     double FirstNumb = Convert.ToDouble(txtFirstValue.Text); 
     double SecondNumb = Convert.ToDouble(txtSecondValue.Text); 
     double ThirdNumb = Convert.ToDouble(txtThirdValue.Text); 

     double m; 

     m = FirstNumb + SecondNumb + ThirdNumb; 
     listBox1.Items.Add(m); 


    } 
+1

歡迎來到StackOverflow。您需要提供更多信息才能獲得更多幫助。例如:當你點擊總和按鈕時執行什麼代碼? –

+0

你應該發佈你的代碼,所以我們不需要猜測來幫助你。但是如果你的代碼需要一些數字進行求和,那麼如果它從文本框中收到「」,那麼這個應用程序就會自然崩潰。空字符串不能被添加。 –

+2

您可能調用了'int.Parse()'(或類似的東西),這會在無效輸入時拋出異常。提示:空字符串是無效輸入。你應該使用'TryParse()'或者在解析之前驗證數據。 – dlev

回答

0

您需要檢查文本框中的字符串值是否爲空或空值,否則無效。改變這一行:

double FirstNumb = Convert.ToDouble(txtFirstValue.Text);

這個

double FirstNumb = 0; 
double.TryParse(txtFirstValue.Text, out FirstNumb); 

FirstNumb將保持0,如果解析失敗。請注意,TryParse返回一個布爾值,如果解析成功則返回true,否則返回false。您也可以對此採取措施,也許會顯示一個MessageBox,要求用戶填寫一個值並退出求和方法。

更多信息請參閱文檔:http://msdn.microsoft.com/en-us/library/994c0zb1(v=vs.100).aspx

編輯:如果要強制執行僅正值,後嘗試解析你必須檢查FirstNumb> = 0,並使用一個消息來提醒用戶爲什麼,並放棄加法方法。

1

嘗試使用int.TryParse來解決。這也處理字符串。

Demo Reference

+2

不要依賴外部鏈接來提供大部分答案,因爲鏈接可能會失效。 – Andy

1

你很可能試圖將文本框的文本內容爲int轉換。不幸的是,你不能將空字符串轉換爲數字。嘗試將文本框的默認內容設置爲「0」。

+0

你能解釋更多plz :( –

相關問題