zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    动态规划——Best Time to Buy and Sell Stock IV
    动态规划——Split Array Largest Sum
    动态规划——Burst Ballons
    动态规划——Best Time to Buy and Sell Stock III
    动态规划——Edit Distance
    动态规划——Longest Valid Parentheses
    动态规划——Valid Permutations for DI Sequence
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之法阅读笔记03
  • 原文地址:https://www.cnblogs.com/tony312ws/p/2149021.html
Copyright © 2011-2022 走看看