c# - 使用屏蔽文本框来验证输入

标签 c# .net winforms validation maskedtextbox

您好,我正在使用以下掩码字符串来确保用户输入有效的电话号码

(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/

相关文章:

c# - 设置 Webview2 header 或 cookie

c# - 在 BuildServiceProvider 之前访问服务

c# - 如何在不闪烁的情况下为 C# 中的 winforms 自定义控件设置动画?

c# - 如何让文本框超过 20 像素高?

c# - 选择子句问题中的动态列

c# - 哈希表碰撞,如何获取正确的值?

c# - 在没有管理员权限的 Linux 中运行 .NET 解决方案文件

c# - 使用 TreeNode 作为用户设置

c# - 如何检测平板电脑模式

c# - 离开多播组时通知