我希望用户将数据以指定的方式放在Vb.net中的文本框中

时间:2019-05-17 11:15:11

标签: vb.net

在车号中,书写格式相同。例如: 车号仅以以下方式书写:RJ20CF2091。 现在从左到右考虑它。在前2个位置只应输入字母,在接下来的2个(第3位和第4位)仅应输入数字,在第5和第6位仅应输入字母,在最后4个(第7、8、9和10位)仅输入数字。文本框中的数据大小应恰好为10。

2 个答案:

答案 0 :(得分:2)

使用MaskedTextBox,可以提供一个掩码,该掩码仅在定义的位置允许特定的字符集。

由于您的输入为:Artifacts,因此可以使用控件的MaskedTextBox.Mask属性中描述的掩码元素将其表示为: 2 Letters + 2 Numbers + 2 Letters + 4 Numbers

请注意,您还需要将AsciiOnly属性设置为LL00LL0000

由于输入内容似乎仅使用大写字母,因此您可以使用 True 事件将用户输入内容自动转换为大写:

KeyPress

答案 1 :(得分:0)

首先,您必须定义何时进行验证:

  • 当文本框失去焦点时?

  • 对于每个键入的字母?

  • 当用户按下按钮时,例如“确定”?

然后您需要定义,如果用户输入无效,应该发生什么:

  • 把东西做成红色吗?
  • 在某处显示一个感叹号或其他徽标?
  • 停用其他控件?

对于您的实际问题,可以使用如下所示的Regluar表达式:

bool isValid = System.Text.RegularExpressions.Regex.IsMatch("RJ20CF2091",@"^[A-Za-z]{2}[0-9]{2}[A-Za-z]{2}[0-9]{4}");

(请参阅https://regex101.com/r/4VPBXx/1