MaskedTextBox 掩码文本框

MaskedTextBox 是一种特殊的文本框,使用一个掩码来规范用户的输入。掩码可以自定义,类似一种格式模板的方式来约束用户的输入内容。比如约定电话号码、手机号码、身份证、日期等格式。

设置掩码

在属性窗口中点击 Mask 属性右侧的 ... 按钮,会弹出掩码选择对话框,内置了常用的掩码格式:

内置掩码说明
电话号码(999) 000-0000
日期(短)00/00/0000
日期(长)00/00/0000 90:00
身份证号000000-00000000-000A
邮政编码000000
社会安全号000-00-0000

也可以手动输入自定义掩码字符串。

掩码字符说明

字符说明
0必须输入数字(0-9)
9可选输入数字
#可选输入数字或空格,允许 + -
L必须输入字母(a-z、A-Z)
?可选输入字母
&必须输入任意字符
C可选输入任意字符
A必须输入字母或数字
a可选输入字母或数字
.小数点占位符
,千分位占位符
:时间分隔符
/日期分隔符
$货币符号
<后续字符转为小写
>后续字符转为大写
``
“转义字符,将下一字符作为字面量
{ }重复限定符,如 99{3} 表示3位可选数字

自定义掩码示例

// 手机号码:11位数字
this.maskedTextBox1.Mask = "000-0000-0000";

// 日期时间
this.maskedTextBox1.Mask = "0000/00/00 90:00";

// 身份证号(18位)
this.maskedTextBox1.Mask = "000000-00000000-000A";

// 自定义格式:省份简称+城市代码
this.maskedTextBox1.Mask = "L000000";Code language: JavaScript (javascript)

获取和设置文本

// 获取用户输入的实际文本(不含掩码占位符)
string input = this.maskedTextBox1.Text;

// 获取包含掩码格式的文本
string formatted = this.maskedTextBox1.Text;

// 设置文本
this.maskedTextBox1.Text = "13812345678";Code language: JavaScript (javascript)

常用属性

属性说明
Mask掩码格式字符串
Text获取或设置当前文本
MaskCompleted是否所有必填位置都已填写
MaskFull是否所有位置(包括可选)都已填写
PromptChar未输入位置的提示字符(默认 _)
AsciiOnly是否只允许 ASCII 字符
BeepOnError输入不合法时是否发出提示音
CutCopyMaskFormat剪切/复制时是否包含掩码字符
TextMaskFormat获取文本时是否包含字面量和提示字符
this.maskedTextBox1.PromptChar = '*';
this.maskedTextBox1.BeepOnError = true;
this.maskedTextBox1.AsciiOnly = true;Code language: JavaScript (javascript)

常用事件

事件说明
MaskInputRejected用户输入不符合掩码规则时触发
TypeValidationCompleted类型验证完成时触发
private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
    MessageBox.Show("输入格式不正确,请检查!");
}Code language: JavaScript (javascript)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注