【问题标题】:Convert textbox text to int - Error even after TryParse()将文本框文本转换为 int - 即使在 TryParse() 之后也会出错
【发布时间】:2015-06-19 12:07:45
【问题描述】:

应该(希望)是一个简单的问题...

我有一个名为 updateChart() 的函数,程序从文本框 (txtBP) 获取值输入,并尝试将其转换为整数以存储在局部变量 (latestReading) 中并用作图形坐标.

我最初是这样尝试的:

int latestReading = Convert.ToInt32(txtBP.Text);

这导致了一个运行时错误,通知我“输入字符串的格式不正确”。经过一些研究,我了解到要将文本从文本框转换为 int,您应该使用 TryParse 方法。我尝试了这种方法:

int x = 0;
int latestReading = 0;

if (Int32.TryParse(txtBP.Text, out x))
{
    latestReading = Convert.ToInt32(txtBP.Text);
}
else
{
    MessageBox.Show("Invalid Reading!");
}

我确信这会起作用,但是在进行测试时,即使我自己在文本框中输入值 1 也会导致它跳转到语句的“else”部分。我已经阅读了有关堆栈溢出的信息,但找不到类似的情况。

【问题讨论】:

  • 你能调试每一行代码,并检查txtBP.Text的值是什么,当它通过你的条件?
  • 您是否调试过您的代码并看到您的txtBP.Text真的 1
  • 其实Convert.ToInt32(txtBP.Text)TryParse 是不需要的。如果成功,您可以直接使用x。请注意,如果 txtBP.Text.Trim() 可以包含前导或尾随空格,则应使用它。
  • 尝试在if (Int32.TryParse(txtBP.Text, out x))之前添加MessageBox.Show(txtBP.Text);
  • 将您的代码 latestReading = Convert.ToInt32(txtBP.Text); 更改为 latestReading = x;。 (我想这也是 Tim 的意思)。

标签: c# type-conversion tryparse


【解决方案1】:

只是为了让大家都知道,我让事情正常了。

在单击按钮时调用 updateChart() 函数似乎将其丢弃,通过在已在单击按钮时调用的函数中调用它,它似乎能够从文本框中访问数据。仍然不完全确定这是如何发生的,但没有抱怨。

感谢大家的帮助!

标记

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多