MaskedTextBox.TypeValidationCompleted Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Występuje po MaskedTextBox zakończeniu analizowania bieżącej ValidatingType wartości przy użyciu właściwości .
public:
event System::Windows::Forms::TypeValidationEventHandler ^ TypeValidationCompleted;
public event System.Windows.Forms.TypeValidationEventHandler TypeValidationCompleted;
public event System.Windows.Forms.TypeValidationEventHandler? TypeValidationCompleted;
member this.TypeValidationCompleted : System.Windows.Forms.TypeValidationEventHandler
Public Custom Event TypeValidationCompleted As TypeValidationEventHandler
Typ zdarzenia
Przykłady
Poniższy przykład kodu próbuje przeanalizować dane wejściowe użytkownika jako prawidłowy DateTime obiekt. Jeśli zakończy się to niepowodzeniem, TypeValidationCompleted program obsługi zdarzeń wyświetli użytkownikowi komunikat o błędzie. Jeśli wartość jest prawidłowa DateTime, kod sprawdza, czy podany data nie jest wcześniejsza niż bieżąca data. Ten przykład kodu wymaga, aby projekt Windows Forms zawierał kontrolkę MaskedTextBox o nazwie i kontrolkę ToolTip o nazwie MaskedTextBox1
ToolTip1
.
private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.Mask = "00/00/0000";
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
maskedTextBox1.KeyDown += new KeyEventHandler(maskedTextBox1_KeyDown);
toolTip1.IsBalloon = true;
}
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
{
//Now that the type has passed basic type validation, enforce more specific type rules.
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;
}
}
}
// Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
toolTip1.Hide(maskedTextBox1);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MaskedTextBox1.Mask = "00/00/0000"
Me.MaskedTextBox1.ValidatingType = GetType(System.DateTime)
Me.ToolTip1.IsBalloon = True
End Sub
Private Sub MaskedTextBox1_TypeValidationCompleted(ByVal sender As Object, ByVal e As TypeValidationEventArgs) Handles MaskedTextBox1.TypeValidationCompleted
If (Not e.IsValidInput) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", Me.MaskedTextBox1, 0, -20, 5000)
Else
' Now that the type has passed basic type validation, enforce more specific type rules.
Dim UserDate As DateTime = CDate(e.ReturnValue)
If (UserDate < DateTime.Now) Then
Me.ToolTip1.ToolTipTitle = "Invalid Date"
Me.ToolTip1.Show("The date in this field must be greater than today's date.", Me.MaskedTextBox1, 0, -20, 5000)
e.Cancel = True
End If
End If
End Sub
' Hide the tooltip if the user starts typing again before the five-second display limit on the tooltip expires.
Private Sub MaskedTextBox1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MaskedTextBox1.KeyDown
Me.ToolTip1.Hide(Me.MaskedTextBox1)
End Sub
Uwagi
Kontrolka MaskedTextBox będzie opcjonalnie weryfikować dane wejściowe użytkownika względem typu zdefiniowanego przez jego MaskedTextBox.ValidatingType właściwość. Jeśli ta właściwość nie null
jest , występuje następująca seria zdarzeń:
Sekwencja walidacji rozpoczyna się po wystąpieniu jednej z następujących czynności:
MaskedTextBox kontrolka zwalnia fokus.
Właściwość Text jest pobierana.
Metoda jest wywoływana ValidateText .
Dowolne z tych zdarzeń powoduje wywołanie
Parse
metody typu określonego z właściwością ValidatingType .Parse
jest odpowiedzialny za konwersję sformatowanego ciągu wejściowego na typ docelowy. Pomyślna konwersja jest równa pomyślnej weryfikacji.Po
Parse
powrocie TypeValidationCompleted zdarzenie zostanie podniesione. Procedura obsługi zdarzeń dla tego zdarzenia jest najczęściej implementowana w celu przeprowadzenia przetwarzania weryfikacji typu lub maski. Otrzymuje TypeValidationEventArgs parametr zawierający informacje o konwersji, na przykład element członkowski wskazuje, IsValidInput czy konwersja zakończyła się pomyślnie.Po powrocie programu obsługi zdarzeń TypeValidationCompleted zostanie zgłoszone standardowe zdarzenie weryfikacji , Validating. Można zaimplementować procedurę obsługi w celu przeprowadzenia standardowej weryfikacji, na przykład anulowania zdarzenia.
Jeśli zdarzenie nie zostanie anulowane w kroku 3, zostanie zgłoszone standardowe zdarzenie Validated weryfikacji kontroli.
Cancel Jeśli właściwość jest ustawiona na true
w procedurze TypeValidationCompleted obsługi zdarzeń, zdarzenie zostanie anulowane, a MaskedTextBox kontrolka zachowuje fokus, chyba że kolejne Validating zdarzenie ustawia jego wersję CancelEventArgs.Cancel właściwości z powrotem na false
.