我想从Regex表达式设置MaskedtextBox的Mask。比如我想要一个有效的电子邮件,Decimal值和针对MaskedtextBox的其他正则表达式。
答案 0 :(得分:5)
作为参考,这描述了你可以用掩码做什么: http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.mask(VS.90).aspx
我唯一一次看到你需要从正则表达式设置掩码是你无法控制正则表达式,例如,如果它是从用户或数据库中获取的。掩码与正则表达式的格式不同,并且功能不同。所以有些时候,它甚至可能无法完成。据我所知,你根本无法对带有掩码的电子邮件进行验证,因为各个部分的位置和长度都会发生变化。
您应该只使用常规验证,而不是使用掩码,然后您可以直接使用正则表达式。确保(常规,未屏蔽)文本框的CausesValidation属性为true,然后拦截Validating事件,如果正则表达式不匹配,则将CancelEventArgs.Cancel设置为true。