c# - 如果字符串包含整数,如何为文本框设置条件

标签 c# windows vb.net

我目前在对文本框进行错误检查时遇到了一些问题。它持有一个变量(称为 Price)作为 Double。它的目的是输入一个数字,当单击一个按钮时,它会将它添加到显示在不同文本框中的运行总计中。

现在我在检查文本框是否为空时出现错误:

!string.IsNullOrWhiteSpace(txtAddItem.Text)

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

最佳答案

方法一:正则表达式

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

Regex r = new Regex(@"^[0-9]+$")

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

方法二:try-catch 和 Parse()

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

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

方法三:TryParse()

结合了 try-catchParse() 的更高级版本正在使用 double.TryParse()根据转换是否成功返回真/假值的方法。

double x;
if (double.TryParse(TextBox1.Text, out x)) {
    runningSum += x;
} else {
    //handle if it is not a number in the TextBox.
}

关于c# - 如果字符串包含整数,如何为文本框设置条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54903173/

相关文章:

c# - 无法在静态上下文中访问非静态方法?

python - 哪种用于 Windows GUI 自动化的 Python 扩展能够最灵活地处理设计不良的 UI?

vb.net - T 类型未定义

mysql - 如何以相同的形式搜索和查看数据

vb.net - Office 加载项安装 VSTO 下载失败

c# - Azure 函数服务总线触发器从函数级别设置自动完成

c# - 使用 TPL 处理 WF 4.0 长时间运行的事件

c# - 当 Stream.Read() 存在时,StreamReader 的目的是什么?

windows - 为什么我不能删除带波浪号的文件?

linux - 无法通过 samba 从 Windows 访问 GlusterFS 安装卷