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 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 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 durch seine MaskedTextBox.ValidatingType Eigenschaft definierten Typs. Wenn diese Eigenschaft nicht null
ist, tritt die folgende Reihe von Ereignissen auf:
Die Validierungssequenz beginnt, wenn eine der folgenden Aktionen auftritt:
MaskedTextBox das Steuerelement verliert den Fokus.
Die Text Eigenschaft wird abgerufen.
Die ValidateText -Methode wird aufgerufen.
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.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.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.
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
.