• 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.

  • 相关阅读:
    20210608日报
    数据结构-四则表达式运算
    软工博客归档工具(自用)
    阅读笔记6
    阅读笔记4
    阅读笔记3
    阅读笔记2
    阅读笔记5
    阅读笔记1
    大二下第16周总结
  • 原文地址:https://www.cnblogs.com/tony312ws/p/2149021.html
Copyright © 2020-2023  润新知