MaskedTextBox

本文详细介绍了MaskedTextBox控件的Mask属性使用方法,包括各种掩码元素如数字、字母及特殊字符的功能与设置技巧,并提供了代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MaskedTextBox控件
Mask属性:
0 数字,必选。此元素将接受 0 到 9 之间的任何一个数字。

9 数字或空间,可选。

# 数字或空间,可选。如果掩码中该位置为空白,在 Text 属性中将把它呈现为一个空格。允许使用加号 (+) 和减号 (-)。
 
L 字母,必选。将输入限定为 ASCII 字母 a-z 和 A-Z。此掩码元素等效于正则表达式中的 [a-zA-Z]。
 
? 字母,可选。输入限定为 ASCII 字母 a-z 和 A-Z。此掩码元素等效于正则表达式中的 [a-zA-Z]?。
 
& 字符,必选。如果 AsciiOnly 属性设置为 true,此元素的行为将与“L”元素类似。
 
C 字符,可选。任何非控制字符。如果 AsciiOnly 属性设置为 true,此元素的行为将类似于“?”元素。
 
A 字母数字,可选。如果将 AsciiOnly 属性设置为 true,则它接受的唯一字符是 ASCII 字母 a-z 和 A-Z。
 
a 字母数字,可选。如果将 AsciiOnly 属性设置为 true,则它接受的唯一字符是 ASCII 字母 a-z 和 A-Z。
 
. 小数点占位符。使用的实际显示字符将是适合于格式提供程序的小数点符号,格式提供程序由控件的 FormatProvider 属性决定。
 
, 千分位占位符。使用的实际显示字符将是相应于格式提供程序的千分位占位符,格式提供程序由控件的 FormatProvider 属性决定。
 
: 时间分隔符。使用的实际显示字符将是适合于格式提供程序的时间符号,格式提供程序由控件的 FormatProvider 属性决定。
 
/ 日期分隔符。使用的实际显示字符将是适合于格式提供程序的日期符号,格式提供程序由控件的 FormatProvider 属性决定。
 
$ 货币符号。显示的实际字符将是相应于格式提供程序的货币符号,格式提供程序由控件的 FormatProvider 属性决定。
 
< 转换为小写。将后续所有字符都转换为小写。
 
> 转换为大写。将后续所有字符都转换为大写。
 
| 禁用前一个大写转换或小写转换。
 
/ 转义。对掩码字符进行转义,将其转变为原义字符。“//”是反斜杠的转义序列。

 MaskedTextBox.ValidatingType = typeof(int);
 MaskedTextBox.Mask = @"/C000";
        MaskedTextBox.PromptChar = '0'; // 设置提示字符。
        MaskedTextBox.HidePromptOnLeave = false;  // 无焦点时,输入掩码中的提示字符仍保持显示。
 MaskedTextBox.TextMaskFormat = MaskFormat.IncludePromptAndLiterals; // 返回用户输入的文本、掩码中定义的任意文本字符以及提示字符的任意实例。

 private void MaskedTextBox_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {
            if (e.Position < MaskedTextBox.TextLength)
     {
  ToolTip toolTip = new ToolTip();
             toolTip.IsBalloon = true;   // 使用气球状窗口。
             toolTip.ToolTipIcon = ToolTipIcon.Warning;
             toolTip.ToolTipTitle = "系统提示";
                toolTip.Show("请输入数字!", MaskedTextBox, 3000);
     }
        } 

### C# 中 MaskedTextBox 控件的使用方法 MaskedTextBox 是一种特殊的文本框控件,它允许开发者通过掩码指定用户可以输入的内容格式。这种特性使得数据输入更加结构化并减少了错误的可能性。 #### 创建 Windows 窗体应用程序 为了展示 MaskedTextBox 的功能,先创建一个新的 Windows Forms 应用程序[^3]。 #### 设计窗体布局 在设计器中拖拽一个 `MaskedTextBox` 到窗体上,并设置其属性以适应特定的数据格式需求。例如,对于电话号码,可以选择合适的掩码模式如 `(999) 000-0000` 来限定用户的输入范围[^2]。 #### 编写代码逻辑 下面是一段简单的例子,用于配置 MaskedTextBox 并处理基本事件: ```csharp using System; using System.Windows.Forms; namespace MaskedTextBoxDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); // 设置 MaskedTextBox 属性 maskedTextBox1.Mask = "(999) 000-0000"; maskedTextBox1.PromptChar = '_'; } private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) { MessageBox.Show($"Invalid input at position {e.Position}"); } private void buttonSubmit_Click(object sender, EventArgs e){ string phoneNumber = maskedTextBox1.Text; Console.WriteLine(phoneNumber); } } } ``` 这段代码设置了 MaskedTextBox 的掩码为美国标准电话号码格式,并指定了提示符字符 `_` 。当有无效输入发生时,将会弹出消息框告知具体位置;点击提交按钮后则打印当前填写的有效电话号码。 如果一次性粘贴多个不符合条件的字符进入 MaskedTextBox ,每遇到一次不匹配的情况都会触发 `MaskInputRejected` 事件,因此可能多次调用相应的事件处理器函数[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值