MaskedTextBox.TypeValidationCompleted Zdarzenie

Definicja

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 MaskedTextBox1ToolTip1.

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 nulljest , występuje następująca seria zdarzeń:

  1. Sekwencja walidacji rozpoczyna się po wystąpieniu jednej z następujących czynności:

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Dotyczy

Zobacz też