2014-08-27 68 views
-5

我在Windows窗體中插入了一個數字文本框,用於我的數據輸入。在少數情況下,如果我故意將其中一些空的,代碼不起作用。它說「輸入字符串格式不正確」。我可以禁用已經鏈接到變量的文本框,以便代碼不會中斷嗎?如果文本框被留空,代碼無法正常工作

private void button1_Click(object sender, EventArgs e) 
    { 

     String FloorNumber = textBox1.Text; 
     int RebarCover = Convert.ToInt32(textBox2.Text); 
     int LongitudinalRebarDiameter = Convert.ToInt32(textBox3.Text); 
     int StirupDiameter = Convert.ToInt32(textBox4.Text); 
     int CountOfEdgeBarsNorth = Convert.ToInt32(textBox5.Text); 
     int CountOfEdgeBarsEast = Convert.ToInt32(textBox6.Text);     
     textBox14.Text = RebarCover.ToString();     

    } 
+1

因爲你不能將'''''或'string.Empty'轉換爲一個整數..它正盯着你的臉..爲什麼不寫一些條件檢查,如果它是空的或空白的默認文本框爲0 – MethodMan 2014-08-27 20:22:55

回答

5

你真的需要使用Int32.TryParse,以避免在這種情況下失效

int tempValue; 
    String FloorNumber = textBox1.Text; 
    if(!Int32.TryParse(textBox2.Text, out tempValue) 
    { 
     MessageBox.Show("Need a valid number for RebarCover"); 
     return; 
    } 
    int RebarCover = tempValue; 

    // and same code for the other textboxes that you need to convert to a Int32 
    ....     

Int32.TryParse試圖將字符串轉換成整數,如果失敗,則沒有引發異常返回false。如果可以轉換文本,out tempValue變量將接收轉換後的值,並且TryParse返回true。