MaskedTextBox.TypeValidationCompleted Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 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 ToolTip1
enthä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 null
lautet, tritt die folgende Ereignisreihe auf:
Die Überprüfungssequenz beginnt, wenn eine der folgenden Aktionen auftritt:
MaskedTextBox Die Steuerung verliert den Fokus.
Die Text Eigenschaft wird abgerufen.
Die ValidateText -Methode wird aufgerufen.
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.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.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.
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
.