1. 简介
本质是文本框,但它可以通过掩码来区分输入的正确与否,可以控制输入的格式、长度
主要应用场景是:需要格式化输入信息的情况
2. 常用属性
属性 | 解释 |
---|---|
(Name) | 控件ID,在代码里引用的时候会用到,一般以 mtxt 开头 |
AsciiOnly | 是否只接受ASCII字符作为有效输入 |
BeepOnError | 键入无效字符时,控件是否发出提示音 |
CutCopyMaskFormat | 指示在将文本复制到剪贴板时是否包含原义字符和/或提示字符。 ExcludePromptAndLiterals:仅复制输入文本 IncludePrompt:复制文本,不复制掩码字符/提示字符 IncludeLiterals(默认):复制文本和原义字符 IncludePromptAndLiterals:复制文本和原义字符、提示字符 |
Dock | 是否要绑定到容器的边框 |
Enabled | 是否启用该控件 |
HidePromptOnLeave | 当控件没有焦点时,是否显示提示字符,默认不显示 |
HideSelection | 当编辑控件失去焦点时,是否隐藏选定内容 |
InsertKeyMode | 指示掩码文本框输入字符的键入模式 |
Mask | 设置控制此控件允许的输入的字符串,点击后面 三个点的符号 开始设置: 掩码的字符代号: 0:必选*,0-9 之间的任意一个数字 9:可选, 数字或空格 #:可选 ,数字或空格,如果掩码中该位置为空白,在Text属性中将把它呈现为一个空格。允许使用加号 (+) 和减号 (-) L:ASCII字母,必选* &:字符,必选* C:字符 A:字母 自定义掩码 |
PasswordChar | 指示为密码输入显示的字符,保密字符 |
PromptChar | 指示用作占位符的字符,默认是下划线 |
ReadOnly | 能否更改编辑控件中的文本 |
RejectInputOnFirstFailure | 如果为true,则只要有一个字符与掩码不符,输入文本就被拒绝;否则,文本中的每个字符按单个输入逐个处理 |
Text | 与控件关联的文本 |
TextAlign | 文本的对齐方式 |
TextMaskFormat | 从Text属性中返回字符串时是否包含原义字符和/或提示字符 |
3. 事件
属性 | 解释 |
---|---|
MaskChanged | 当Mask属性的值更改时发生 |
MaskInputRejected | 当输入字符或文本不符合掩码规范时发生 |
TextChanged | 在控件上更改Text属性的值时引发的事件 |
4. 示例
设置MaskedTextBox的 Mask 属性值为 移动电话号码:
在加载GUI时,初始化 MaskedTextBox 的属性:
private void FrmMaskedTextBox_Load(object sender, EventArgs e)
{
mtxtYouBian.BeepOnError = true; // 输入错误提示音
mtxtYouBian.CutCopyMaskFormat = MaskFormat.IncludePromptAndLiterals;
mtxtYouBian.RejectInputOnFirstFailure = true;
mtxtYouBian.TextMaskFormat = MaskFormat.IncludePromptAndLiterals; // 输入文本/掩码和提示符中定义的任意文本字符
mtxtYouBian.PasswordChar = '*'; //设置密码字符
mtxtYouBian.PasswordChar = '\0'; //取消密码字符
}
点击按钮,将用户输入到MaskedTextBox 中的值显示到 普通文本框中:
private void button1_Click(object sender, EventArgs e)
{
txtValue.Text = mtxtYouBian.Text;
}
运行,当输入字母时,无法输入,并响错误提示音
当输入数字:
当修改属性值 mtxtYouBian.TextMaskFormat = MaskFormat.IncludePrompt; 后,再次运行:
当修改属性值 mtxtYouBian.TextMaskFormat = MaskFormat.IncludeLiterals; ,Mask 属性值中加一个 ‘ / ’ 后,再次运行:
当修改属性值 mtxtYouBian.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals; 后,再次运行:
ExcludePromptAndLiterals | 只包含 用户输入的文本 |
IncludeLiterals | 包含 用户输入的文本 以及 掩码中定义的任意文本字符 |
IncludePrompt | 包含 用户输入的文本 以及 提示字符的任意实例 |
IncludePromptAndLiterals | 包含 用户输入的文本、掩码中定义的任意文本字符以及提示字符的任意实例 |
参考:2023年C#之WinForm零基础教程50讲
winform之MaskedTextBox(掩码文本控件)
Microsoft Learn / .Net / System.Windows.Forms / MaskFormat 枚举