如果字符串包含整数,如何设置文本框的条件

时间:2019-02-27 10:23:00

标签: c# windows vb.net

我目前在文本框中进行错误检查时遇到了一些问题。它包含一个变量(称为价格)为Double。其目的是输入一个数字,然后单击按钮将其添加到显示在不同文本框中的运行总计中。

现在,使用以下命令检查文本框是否为空时出现错误:

!string.IsNullOrWhiteSpace(txtAddItem.Text)

但是,我不确定如何错误检查是否输入了数字以外的字符串或字符。任何想法都值得赞赏。

3 个答案:

答案 0 :(得分:3)

方法1:RegEx

您应该尝试使用正则表达式。正则表达式(简称Regex)用于将字符串与模式进行匹配。例如,如果您只想允许整数:

tuple

Regex类具有一个.IsMatch(string s)方法,其中print(d)是您要针对模式测试的字符串。

方法2:try-catch和Parse()

另一种方法(可能对初学者更友好)是try-catch块。 (我假设您的TextBox的名称为TextBox1,并且您将sum值存储在runningSum变量中。

d[k] =

方法3:TryParse()

结合了Regex r = new Regex(@"^[0-9]+$") s的更高级版本正在使用double.TryParse()方法,该方法根据转换是否成功返回真/假值。

try {
    double x = double.Parse(TextBox1.Text);
    runningSum += x;
catch (ArgumentException ax) {
    //handle if it is not a number in the TextBox
}

答案 1 :(得分:1)

如果该值需要为有效的double,则可以使用'double.TryParse'。像这样:

if (double.TryParse(txtAddItem.Text, out double price) == false)
{
  // Show error or clear textbox
}
else
{
  // Value is valid, add to total
}

答案 2 :(得分:1)

您可以使用Double.TryParse()

double number;
if (Double.TryParse(txtAddItem.Text, out number)) {
    Console.WriteLine("'{0}' is a valid double: {1}", value, number);
} else {
    Console.WriteLine("Unable to parse '{0}' as a valid double", value);
}