正在验证C#Winforms上文本框的输入

正在验证C#Winforms上文本框的输入,c#,regex,winforms,C#,Regex,Winforms,我试图验证C#winforms上文本框的输入是否符合有效模式 模式必须是仅由以下字符组成的字符串 0至9 从A到Z “——” “/” 我正在考虑使用文本框上的“Validating”(验证)事件来执行验证,但我正在努力使用正确的正则表达式——或者可能有比使用正则表达式更好的方法。正则表达式“[a-Z0-9_/]”应该可以做到这一点。在这里,正则表达式似乎是最明显的选择(这是一个非常简单的验证),只要您乐于使用它们 根据您选择的语言,您可能需要在某些特殊字符中加“\”引号。如果您还希望允许使用

我试图验证C#winforms上文本框的输入是否符合有效模式

模式必须是仅由以下字符组成的字符串

  • 0至9
  • 从A到Z
  • “——”
  • “/”
我正在考虑使用文本框上的“Validating”(验证)事件来执行验证,但我正在努力使用正确的正则表达式——或者可能有比使用正则表达式更好的方法。

正则表达式“[a-Z0-9_/]”应该可以做到这一点。在这里,正则表达式似乎是最明显的选择(这是一个非常简单的验证),只要您乐于使用它们

根据您选择的语言,您可能需要在某些特殊字符中加“\”引号。如果您还希望允许使用小写字母,那么它应该是“[a-zA-Z0-9_z/]”


或者,类似“(\w?\d?\u?/?)+”的内容可能会起作用\w匹配任何字符,\d任何数字。“?”与上一个字符0或1匹配一次,而结尾的+允许多个匹配。

您可以在文本框上使用KeyDown事件,如果KeyEventArgs的SuppressKeyPress字段不是您要接受的字符之一,则可以将其设置为true。您可以通过检查KeyEventArgs的KeyCode字段来检查输入的字符。这样,如果用户尝试键入的字符不是您想要的字符之一,则不会发生任何事情。

我以前也用过这种方式,这是相对简单的。确保处理特殊情况,例如用户输入字符的数字代码。同时确保不会意外地删除键盘快捷键,如剪切、复制和粘贴。