Freigeben über


MaskedTextBox.TypeValidationCompleted Ereignis

Definition

Tritt ein, wenn MaskedTextBox die Analyse des aktuellen Werts unter Verwendung der ValidatingType-Eigenschaft beendet hat.

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 

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird versucht, die Eingabe des Benutzers als gültiges DateTime Objekt zu analysieren. Wenn ein Fehler auftritt, zeigt der TypeValidationCompleted Ereignishandler dem Benutzer eine Fehlermeldung an. Wenn der Wert gültig DateTimeist, überprüft der Code, dass das angegebene Datum nicht vor dem heutigen Datum liegt. Dieses Codebeispiel erfordert, dass Ihr Windows Forms-Projekt ein MaskedTextBox Steuerelement mit dem Namen MaskedTextBox1 und ein ToolTip Steuerelement mit dem Namen ToolTip1enthält.

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

Hinweise

Das MaskedTextBox Steuerelement überprüft optional die Benutzereingabe anhand des durch seine MaskedTextBox.ValidatingType Eigenschaft definierten Typs. Wenn diese Eigenschaft nicht nullist, tritt die folgende Reihe von Ereignissen auf:

  1. Die Validierungssequenz beginnt, wenn eine der folgenden Aktionen auftritt:

  2. Jedes dieser Ereignisse führt zu einem Aufruf der Parse -Methode des mit der -Eigenschaft angegebenen Typs ValidatingType . Parse ist für die Konvertierung der formatierten Eingabezeichenfolge in den Zieltyp verantwortlich. Eine erfolgreiche Konvertierung entspricht einer erfolgreichen Validierung.

  3. Nach der Parse Rückgabe wird das TypeValidationCompleted Ereignis ausgelöst. Der Ereignishandler für dieses Ereignis wird am häufigsten implementiert, um die Typ- oder Maskenüberprüfungsverarbeitung durchzuführen. Es empfängt einen TypeValidationEventArgs Parameter, der Informationen zur Konvertierung enthält. Der Member gibt beispielsweise an, IsValidInput ob die Konvertierung erfolgreich war.

  4. Nachdem der Ereignishandler für das TypeValidationCompleted Ereignis zurückgegeben wird, wird das Standardüberprüfungsereignis ausgelöst Validating. Ein Handler kann implementiert werden, um eine Standardüberprüfung durchzuführen, einschließlich des Abbrechens des Ereignisses.

  5. Wenn das Ereignis in Schritt 3 nicht abgebrochen wird, wird das Standardsteuerelementüberprüfungsereignis Validated ausgelöst.

Wenn die Cancel -Eigenschaft im TypeValidationCompleted Ereignishandler auf true festgelegt ist, wird das Ereignis abgebrochen, und das Steuerelement behält den MaskedTextBox Fokus, es sei denn, das nachfolgende Validating Ereignis legt seine Version der CancelEventArgs.Cancel -Eigenschaft wieder auf festfalse.

Gilt für:

Weitere Informationen