int.Parse(textBox1.Text)错误

时间:2011-04-14 09:49:32

标签: c# winforms parsing textbox int

我收到错误int pocet = int.Parse(textBox1.Text);

它说数据有一些不好的格式,但我只写自然数字到TextBox1

7 个答案:

答案 0 :(得分:2)

我可能会使用TryParse方法,当有坏数据时不会抛出异常,但是允许你使用控制流和逻辑来处理它:

  int number;
  bool result = Int32.TryParse(TextBox.Text.Trim(), out number);
  if (result)
  {
     //Carry On/    
  }
  else
  {
     //Handle input error
  }

答案 1 :(得分:2)

我怀疑你要么在那里得到一个空字符串,在开头或结尾都有空格,或者你是用数千个分隔符写的。

您可以指示Int32.Parse方法处理其中一些这样的情况:

Int32.Parse(
   "  -12,340  ",
   NumberStyles.AllowLeadingWhite |
   NumberStyles.AllowThousands |
   NumberStyles.AllowTrailingWhite |
   NumberStyles.AllowLeadingSign,
   CultureInfo.CurrentCulture));

请注意最后的当前文化位很重要,因为千位分隔符将根据用户计算机设置的文化而有所不同。

这仍然不会处理空字符串 - 只需在进行解析之前检查字符串是否为空。

答案 2 :(得分:1)

如果使用自然数,则使用

NumericUpDown Control

int pocet = int.Parse(numericUpDown1.Value.ToString());

答案 3 :(得分:0)

尝试:

int intValueFromTbx = Convert.ToInt32(textBox1.Text)

答案 4 :(得分:0)

尝试使用

  

Convert.ToInt32(textBox1.Text);

同时进行调试以确保在转换时textBox1.Text只有整数。

答案 5 :(得分:0)

使用此方法:

int pocet = Int32.Parse(TextBox1.Text.ToString());

答案 6 :(得分:0)

我遇到同样的问题....请确保使用正确的上限号码 9和
 9
第一个会工作,第二个不会!

希望这有帮助

@txshon