Share via


逐步解說:使用 MaskedTextBox 控制項

更新:2007 年 11 月

逐步解說將說明的工作包括:

如需示範 MaskedTextBox 控制項進階功能 (例如使用自訂資料型別進行驗證) 的完整可用版本,請參閱 MaskedTextBox 控制項範例

建立專案並加入控制項

若要將 MaskedTextBox 控制項加入至表單

  1. 開啟您要放置 MaskedTextBox 控制項的表單。

  2. 從 [工具箱] 將 MaskedTextBox 控制項拖曳至表單。

  3. 以滑鼠右鍵按一下控制項,並選擇 [屬性]。在 [屬性] 視窗中,按一下 [Mask] 屬性並按一下屬性名稱旁邊的 ... (省略符號) 按鈕。

  4. 在 [輸入遮罩] 對話方塊中,選取 [簡短日期] 遮罩,再按一下 [確定]。

  5. 在 [屬性] 視窗中,將 BeepOnError 屬性設定為 true。每當使用者試圖輸入違反遮罩定義的字元時,這個屬性就會發出短的嗶聲。

提醒使用者輸入的錯誤

為遭拒的遮罩輸入加上汽球提示

  1. 回到 [工具箱],在表單中加入一個 ToolTip

  2. MaskInputRejected 事件建立一個事件處理常式,當發生輸入錯誤時即引發 ToolTip。汽球提示會在畫面上停留五秒鐘,或到使用者按它為止。

    public void Form1_Load(Object sender, EventArgs e) 
    {
        ... // Other initialization code
        maskedTextBox1.Mask = "00/00/0000";
        maskedTextBox1.MaskInputRejected += new MaskInputRejectedEventHandler(maskedTextBox1_MaskInputRejected)
    }
    
    void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
        toolTip1.ToolTipTitle = "Invalid Input";
        toolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", maskedTextBox1, maskedTextBox1.Location, 5000);
    }
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.ToolTip1.IsBalloon = True
        Me.MaskedTextBox1.Mask = "00/00/0000"
    End Sub
    
    Private Sub MaskedTextBox1_MaskInputRejected(sender as Object, e as MaskInputRejectedEventArgs) Handles MaskedTextBox1.MaskInputRejected
        ToolTip1.ToolTipTitle = "Invalid Input"
        ToolTip1.Show("We're sorry, but only digits (0-9) are allowed in dates.", MaskedTextBox1, 5000)
    End Sub
    

提醒使用者型別無效

為無效的資料型別建立汽球提示

  1. 在表單的 Load 事件處理常式中,將一個代表 DateTime 型別的 Type 物件指派到 MaskedTextBox 控制項的 ValidatingType 屬性:

    private void Form1_Load(Object sender, EventArgs e)
    {
        // Other code
        maskedTextBox1.ValidatingType = typeof(System.DateTime);
        maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
    }
    
    Private Sub Form1_Load(sender as Object, e as EventArgs)
        // Other code
        MaskedTextBox1.ValidatingType = GetType(System.DateTime)
    End Sub
    
  2. 加入 TypeValidationCompleted 事件的事件處理常式:

    public void maskedTextBox1_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
    {
        if (!e.IsValidInput)
        {
           toolTip1.ToolTipTitle = "Invalid Date Value";
           toolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000);
           e.Cancel = true;
        }
    }
    
    Public Sub MaskedTextBox1_TypeValidationCompleted(sender as Object, e as TypeValidationEventArgs)
        If Not e.IsValidInput Then
           ToolTip1.ToolTipTitle = "Invalid Date Value"
           ToolTip1.Show("We're sorry, but the value you entered is not a valid date. Please change the value.", maskedTextBox1, 5000)
           e.Cancel = True
        End If
    End Sub
    

請參閱

參考

MaskedTextBox

其他資源

MaskedTextBox 控制項 (Windows Form)