星期五, 8月 14, 2015

[C#] MaskedTextBox

實作這篇 MSDN 文章 逐步解說:使用 MaskedTextBox 控制項

[C#] MaskedTextBox-1

namespace maskedTextBoxMSDN
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 設定西元簡單日期
            maskedTextBox1.Mask = "0000/00/00";
            // 發出系統警示音
            maskedTextBox1.BeepOnError = true;
            // 欲驗證資料型態
            maskedTextBox1.ValidatingType = typeof(DateTime);
            // 註冊事件
            maskedTextBox1.MaskInputRejected += maskedTextBox1_MaskInputRejected;
            maskedTextBox1.TypeValidationCompleted += maskedTextBox1_TypeValidationCompleted;
        }

        void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
        {
            if (e.IsValidInput) return;

            toolTip1.ToolTipTitle = "TypeValidationCompleted Event";
            toolTip1.Show(e.Message, maskedTextBox1, 5000);
            // 取消該事件,並把 focus 鎖定在 maskedTextbox
            e.Cancel = true;
        }

        void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {
            toolTip1.ToolTipTitle = "MaskInputRejected Event";
            toolTip1.Show(e.RejectionHint.ToString(), maskedTextBox1, 5000);
        }
    }
}

測試 1:空值
[C#] MaskedTextBox-2

測試 2:嘗試輸入中文
[C#] MaskedTextBox-3

測試 3:輸入無效日期
[C#] MaskedTextBox-4

沒有留言:

張貼留言