Wskazówki: praca z formantem MaskedTextBox
Zadania przedstawione w tym przewodniku obejmują:
Inicjowanie kontrolki MaskedTextBox
Używanie programu obsługi zdarzeń MaskInputRejected w celu powiadamiania użytkownika, gdy znak nie jest zgodny z maską
Przypisywanie typu do ValidatingType właściwości i używanie TypeValidationCompleted programu obsługi zdarzeń w celu alertu użytkownika, gdy wartość, którą próbuje zatwierdzić, jest nieprawidłowa dla typu
Tworzenie projektu i dodawanie kontrolki
Aby dodać kontrolkę MaskedTextBox do formularza
Otwórz formularz, na którym chcesz umieścić kontrolkę MaskedTextBox .
Przeciągnij kontrolkę MaskedTextBox z przybornika do formularza.
Kliknij prawym przyciskiem myszy kontrolkę i wybierz polecenie Właściwości. W oknie Właściwości wybierz właściwość Maskuji kliknij przycisk ... (wielokropek) obok nazwy właściwości.
W oknie dialogowym Maska wprowadzania wybierz maskę daty krótkiej i kliknij przycisk OK.
W oknie Właściwości ustaw BeepOnError właściwość na
true
wartość . Ta właściwość powoduje krótki sygnał dźwiękowy za każdym razem, gdy użytkownik próbuje wprowadzić znak naruszający definicję maski.
Aby uzyskać podsumowanie znaków, które obsługuje właściwość Maska, zobacz sekcję Mask Uwagi właściwości .
Zgłaszanie alertów o błędach wejściowych przez użytkownika
Dodaj poradę dymka dla odrzuconych danych wejściowych maski
Wróć do przybornika i dodaj element ToolTip do formularza.
Utwórz procedurę obsługi zdarzeń dla MaskInputRejected zdarzenia, które zgłasza ToolTip błąd podczas wystąpienia błędu wejściowego. Wskazówka balonu pozostaje widoczna przez pięć sekund lub dopóki użytkownik nie kliknie go.
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
Powiadamianie użytkownika o typie, który jest nieprawidłowy
Dodawanie porady balonowej dla nieprawidłowych typów danych
W procedurze obsługi zdarzeń formularza Load przypisz Type obiekt reprezentujący DateTime typ do MaskedTextBox właściwości kontrolki 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
Dodaj procedurę obsługi zdarzeń dla TypeValidationCompleted zdarzenia:
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
Zobacz też
.NET Desktop feedback