响应无效的TextBox条目

时间:2015-02-14 21:27:43

标签: c#

用户在文本框中输入数字,值显示在图表上。我想确保用户在文本框中输入数字,所以我尝试了:

double xValue;
double yValue;

Double.TryParse(xTextBox.Text, out xValue);
Double.TryParse(yTextBox.Text, out yValue);

chart1.Series["data1"].Points.AddXY(xValue, yValue);

Double.TryParse()验证用户是否输入数字,但我不确定当用户输入数字时如何编码。 Double.TryParse()会将xValueyValue分配给0 - 但我也希望用户能够输入0值,因此我不能只编写类似

的代码
if (xValue!=0 && yValue!=0)...

这样的东西
if (xTextBox.Text!="0") {
  Double.TryParse(xTextBox.Text, out xValue);
  }

看起来像笨拙的代码,只会获得更多。确保用户输入双倍的标准方法是什么?

3 个答案:

答案 0 :(得分:1)

TryParse返回一个布尔值,如果转换成功则为true,如果失败则为false。

if (!Double.TryParse(xTextBox.Text, out xValue)) {
     // handle a failure to convert here
}

答案 1 :(得分:1)

如果解析成功,Double.TryParse返回一个布尔值,你应该检查Double.TryParse的结果而不是xValue和yValue。

答案 2 :(得分:1)

首先,您需要考虑用户区域设置。例如,在美国,小数点分隔符为.,在我的国家/地区为,。因此,您需要在用户输入双精度值时指定格式,或者将,替换为.,然后使用Invariant culture解析值。

第二个Double.TryParse方法返回bool值,您可以使用该值检查输入的值是否已成功解析为double。