逐步解說:使用 MaskedTextBox 控制項
更新:2010 年 9 月
逐步解說將說明的工作包括:
初始化 MaskedTextBox 控制項
當輸入的字元不符合遮罩時,使用 MaskInputRejected 事件處理常式來提醒使用者
指派型別給 ValidatingType 屬性,並使用 TypeValidationCompleted 事件處理常式在嘗試認可的值對該型別無效時提醒使用者
建立專案並加入控制項
若要將 MaskedTextBox 控制項加入至表單
開啟您要放置 MaskedTextBox 控制項的表單。
從 [工具箱] 將 MaskedTextBox 控制項拖曳至表單。
以滑鼠右鍵按一下控制項,並選擇 [屬性]。 在 [屬性] 視窗中,按一下 [Mask] 屬性並按一下屬性名稱旁邊的 ... (省略符號) 按鈕。
在 [輸入遮罩] 對話方塊中,選取 [簡短日期] 遮罩,再按一下 [確定]。
在 [屬性] 視窗中,將 BeepOnError 屬性設定為 true。 每當使用者試圖輸入違反遮罩定義的字元時,這個屬性就會發出短的嗶聲。
如需 Mask 屬性支援的字元摘要,請參閱 Mask 屬性的<備註>一節。
提醒使用者輸入的錯誤
為遭拒的遮罩輸入加上汽球提示
回到 [工具箱],在表單中加入一個 ToolTip。
為 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
提醒使用者型別無效
為無效的資料型別建立汽球提示
在表單的 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
加入 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 控制項 (Windows Form)
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 9 月 |
已加入 Mask 屬性的連結,其中摘要說明 Mask 屬性支援的字元。 |
客戶回函。 |