【问题标题】:int.Parse(textBox1.Text) errorint.Parse(textBox1.Text) 错误
【发布时间】:2011-08-05 09:44:42
【问题描述】:

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

它说数据格式不正确,但我只向 TextBox1 写入自然数

【问题讨论】:

  • 向我们展示一个文本框中的字符串示例,以及您收到的确切错误消息。
  • textBox1.Text 中的文字是什么?
  • 显然,你没有。你在 TextBox 中究竟写了什么?
  • Try int pocet = int.Parse(textBox1.Text.Trim()); // 为用户猜测空格(不可见但存在),看起来是正确的输入。
  • 文本框可能是空的吗? -> String.IsNullOrEmpty(textBox1.Text) 是真的吗?

标签: c# winforms parsing textbox int


【解决方案1】:

我怀疑你要么有一个空字符串,要么在开头或结尾有空格,要么你写的是千位分隔符。

您可以指示 Int32.Parse 方法处理其中一些情况,如下所示:

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

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

这仍然无法处理空字符串 - 只需在解析之前检查字符串是否为空。

【讨论】:

  • @Dunemaster,这与我遇到的非常接近......我已经到了预先强制前导零的地步,所以永远不会有空字符串......比如 Int32 .Parse("0" + yourTextbox.Text);
【解决方案2】:

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

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

【讨论】:

  • TryParse 只是为您捕获异常。它没有回答为什么输入无效的原始问题。
【解决方案3】:

如果你使用自然数,那么使用

NumericUpDown 控件

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

【讨论】:

  • 可能是更好的长期解决方案,即使它没有解决所提出的问题。
【解决方案4】:

试试:

int intValueFromTbx = Convert.ToInt32(textBox1.Text)

【讨论】:

  • Convert.ToInt32(string) 实际上调用了 Int32.Parse,所以这将使 OP 出现完全相同的错误。
【解决方案5】:

尝试使用

Convert.ToInt32(textBox1.Text);

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

【讨论】:

  • 嗨 Leo - Convert.ToInt32(string) 实际上调用了 Int32.Parse,所以这将使 OP 出现完全相同的错误。
  • 所以我认为解决方案是调试!
【解决方案6】:

使用这个方法:

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

【讨论】:

  • Text 属性已经是字符串类型...所以在这里调用 ToString() 将无济于事:-(
【解决方案7】:

我有同样的问题....确保您使用正确的 Cap number
9 和

第一个可以,第二个不行!

希望对你有帮助

@txshon

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2017-02-09
    相关资源
    最近更新 更多