您好,我正在使用以下掩码字符串来确保用户输入有效的电话号码
(99)-00000000
这对于澳大利亚的移动电话号码和区域固定电话号码应该可以正常工作
但是我遇到了一个问题,用户可以在不输入所有数字的情况下逃脱
我理解 9 代表 0 到 9 之间的可选数字,0 代表 0 到 9 之间的必需数字
那么为什么如果我不输入所有最后八个强制数字,程序仍然显示类似的结果
(03)-6474
(03)- 63799
(02)-1 38 390
最佳答案
因为它只是在您键入时从左到右填充空格。即使前两位数字是可选的,它也会像您使用前两个数字输入它们一样进行填充。您输入。
如果您不喜欢这种行为,您可以轻松地子类化 MaskedTextBox
控件并自定义它处理键盘输入的方式。以下是几个示例控件,它们会导致数字按预期从右向左插入:
(我认为第二个示例更好地解释了对基本控件所做的更改,而且它允许您在不下载示例项目的情况下查看大部分相关代码。)
关于c# - 使用屏蔽文本框来验证输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204068/