如何确保文本框只接受整数(而不是字符串)

Posted

技术标签:

【中文标题】如何确保文本框只接受整数(而不是字符串)【英文标题】:How to ensure a textbox only accepts integers (and not string) 【发布时间】:2017-01-04 10:39:41 【问题描述】:

上个月我问了如何在VB.Net中获得一个升级系统,效果很好。我现在的问题是,如果用户尝试输入任何字符串(包括混合字符),它不会对级别框执行任何操作,而是将用户赶出。我目前的代码如下:

ElseIf txtExperience.Text = "" Or txtExperience.Text = Letters Then
        MessageBox.Show("Input must be a whole number between 0 and 100000", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

我依稀记得当我第一次学习 VB.Net 时做过类似的事情,但是我不再可以访问那个程序,而且当我在框中输入任何字母时,我似乎找不到任何可能抓住用户的东西.

这可能是一些小错误,但感谢您提供的任何帮助:)

【问题讨论】:

改用NumericUpDown 控件。 感谢您的帮助,但我更愿意将其保留为文本框。有没有保存文本框的简单方法? 看看this 使用 Int32.TryParse 查看文本是否可以转换为数字 - 如果不能,请警告用户。 您的txtExperience.Text = Letters 测试键入的文本和字符串变量Letters 的内容之间的精确 匹配,它不检查是否有 文本中的字母。 【参考方案1】:

你有没有尝试过类似的东西;

For Each c As Char in txtExperience.Text
  If Char.IsDigit(c) = False Then
   MsgBox("Only digits are allowed - Character " & c & " is not valid")
   Exit Sub
  End If
Next

【讨论】:

以上是关于如何确保文本框只接受整数(而不是字符串)的主要内容,如果未能解决你的问题,请参考以下文章

如何验证文本框只允许 c#.net 中的第一个字符大写字母?

如何在 WPF 文本框中仅接受整数 [重复]

如何防范SQL注入漏洞及检测

格式化c#文本框只允许数字字符[重复]

Win32 中仅接受文本框(编辑控件)中的字符和空格

如何确保 replaceAll 将替换整个单词而不是子字符串