MaskedTextBox

掩码控件还是比较常用的,一下是摘自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.

posted @ 2011-08-22 11:01  乄蛇  阅读(524)  评论(0编辑  收藏  举报