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

TypeValidationEventHandler

Beispiele

Im folgenden Codebeispiel wird versucht, die Eingabe des Benutzers als gültiges DateTime Objekt zu analysieren. Wenn der Ereignishandler fehlschlägt, zeigt der TypeValidationCompleted Ereignishandler dem Benutzer eine Fehlermeldung an. Wenn der Wert ein gültiger DateTimeWert ist, überprüft der Code, ob das angegebene Datum nicht vor dem heutigen Datum liegt. Dieses Codebeispiel erfordert, dass Ihr Windows Forms Projekt ein MaskedTextBox Steuerelement namens MaskedTextBox1 und ein ToolTip Steuerelement namens 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 typs, der durch seine MaskedTextBox.ValidatingType Eigenschaft definiert wird. Wenn diese Eigenschaft nicht nulllautet, tritt die folgende Ereignisreihe auf:

  1. Die Überprüfungssequenz beginnt, wenn eine der folgenden Aktionen auftritt:

  2. Jedes dieser Ereignisse führt zu einem Aufruf der Methode des typs, der mit der Parse ValidatingType Eigenschaft angegeben ist. Parse ist für die Konvertierung der formatierten Eingabezeichenfolge in den Zieltyp verantwortlich. Eine erfolgreiche Konvertierung entspricht einer erfolgreichen Überprüfung.

  3. Nach Parse dem Zurückgeben wird das TypeValidationCompleted Ereignis ausgelöst. Der Ereignishandler für dieses Ereignis wird am häufigsten implementiert, um die Typ- oder Maskenüberprüfungsverarbeitung auszuführen. Er empfängt einen TypeValidationEventArgs Parameter, der Informationen zur Konvertierung enthält, z. B. gibt das IsValidInput Element an, ob die Konvertierung erfolgreich war.

  4. Nachdem der Ereignishandler für das TypeValidationCompleted Ereignis zurückgegeben wurde, wird das Standardüberprüfungsereignis Validatingausgelöst. Ein Handler kann implementiert werden, um die Standardüberprüfung auszuführen, z. B. das Abbrechen 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 festgelegt true ist, wird das Ereignis abgebrochen, und das MaskedTextBox Steuerelement behält den Fokus bei, es sei denn, das nachfolgende Validating Ereignis legt seine Version der CancelEventArgs.Cancel Eigenschaft zurück auf false.

Gilt für

Siehe auch