掩码控件还是比较常用的,一下是摘自msdn的掩码元素表:
掩码元素 |
说明 |
---|---|
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 中。原义字符在运行时始终占据掩码中的一个固定位置,用户不能移动或删除该字符。 |
我所纠结的地方在于掩码元素表中的0和9的“必选”和“可选”是什么意思,如果只是单纯的设置下MASK属性完全看不出区别,为了看出区别我设置了maskedTextBox1_TypeValidationCompleted事件:
private void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", maskedTextBox1, 0, -20, 5000);
}
else
{
DateTime userDate = (DateTime)e.ReturnValue;
if (userDate < DateTime.Now)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The date in this field must be greater than today's date.", maskedTextBox1, 0, -20, 5000);
e.Cancel = true;
}
}
}
Form_Load事件中:
maskedTextBox1.ValidatingType=typeof(System.DateTime); maskedTextBox1.TypeValidationCompleted+=new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted); maskedTextBox1.KeyDown+=new KeyEventHandler(maskedTextBox1_KeyDown);
再添加KeyDown事件:
private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e) { toolTip1.Hide(maskedTextBox1); }
这样再设置下MASK属性就是能看出“必选”和“可选”的区别了。
参考自msdn.