2014-08-27 54 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。