MaskedTextBox.ValidatingType MaskedTextBox.ValidatingType MaskedTextBox.ValidatingType MaskedTextBox.ValidatingType Property

Definition

Ruft den Datentyp ab, der verwendet wird, um die Dateneingabe durch den Benutzer zu überprüfen, oder legt diesen fest.Gets or sets the data type used to verify the data input by the user.

public:
 property Type ^ ValidatingType { Type ^ get(); void set(Type ^ value); };
[System.ComponentModel.Browsable(false)]
public Type ValidatingType { get; set; }
member this.ValidatingType : Type with get, set
Public Property ValidatingType As Type

Eigenschaftswert

Ein Type, der den bei der Validierung verwendeten Datentyp darstellt.A Type representing the data type used in validation. Die Standardeinstellung ist null.The default is null.

Beispiele

Im folgenden Codebeispiel wird versucht, die Eingabe des Benutzers als gültig DateTimezu analysieren.The following code example attempts to parse the user's input as a valid DateTime. Wenn dies nicht möglich ist TypeValidationCompleted , zeigt der Ereignishandler dem Benutzer eine Fehlermeldung an.If it fails, the TypeValidationCompleted event handler displays an error message to the user. Wenn der Wert gültig DateTimeist, führt der Code eine zusätzliche Überprüfung durch, um sicherzustellen, dass das angegebene Datum nicht vor dem heutigen Datum liegt.If the value is a valid DateTime, the code performs an additional check to ensure that the date supplied is not prior to today's date. Dieses Codebeispiel setzt voraus, dass das Windows Forms Projekt MaskedTextBox ein MaskedTextBox1 -Steuerelement ToolTip mit dem ToolTip1Namen und ein-Steuerelement namens enthältThis code example requires that your Windows Forms project contains a MaskedTextBox control named MaskedTextBox1 and a ToolTip control named ToolTip1.

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

Masken garantieren nicht, dass die Eingabe eines Benutzers einen gültigen Wert für einen bestimmten Typ darstellt.Masks do not in themselves guarantee that a user's input will represent a valid value for a given type. Der folgende C# Code zeigt eine Maske:The following C# code shows a mask:

maskedTextBox1.Mask = "99/99/9999";  

Der folgende Visual Basic Code zeigt eine Maske:The following Visual Basic code shows a mask:

MaskedTextBox1.Mask = "99/99/9999"

Diese Maske kann verlangen, dass der Benutzer acht Ziffern eingibt, aber nicht überprüfen kann, ob der Benutzer die Werte für Monat, Datum und Jahr im richtigen Bereich eingibt. "12/20/2003" und "70/90/0000" sind bis auf die Maske gleichermaßen gültig.This mask can demand that the user enter eight digits, but cannot verify that the user enters month, date, and year values in the correct range; "12/20/2003" and "70/90/0000" are equally valid as far as the mask is concerned.

Sie können verwenden ValidatingType , um zu überprüfen, ob die vom Benutzer eingegebenen Daten im richtigen Bereich liegen (in dem zuvor erwähnten Fall), indem Sie eine Instanz DateTime des Typs zuweisen.You can use ValidatingType to verify whether the data entered by the user falls within the correct range - in the previously mentioned case, by assigning it an instance of the DateTime type. Der aktuelle Text im-Steuerelement wird überprüft, wenn der Benutzer das Steuerelement verlässt.The current text in the control will be validated either when the user leaves the control. Sie können bestimmen, ob bei der Überprüfung der Daten ein Fehler auftritt TypeValidationCompleted , indem Sie das-Ereignis überwachen.You can determine whether or not the data fails validation by monitoring for the TypeValidationCompleted event. MaskedTextBoxführt die Überprüfung ValidatingType nur dann durch, wenn MaskCompleted gleich ist true.MaskedTextBox will only perform the check against ValidatingType if MaskCompleted is true.

Wenn Sie Ihre eigenen benutzerdefinierten Datentypen mit ValidatingTypeverwenden möchten, müssen Sie eine statische Parse -Methode implementieren, die eine Zeichenfolge als Parameter annimmt.If you want to use your own custom data types with ValidatingType, you must implement a static Parse method that takes a string as a parameter. Diese Methode muss mit einer oder beiden der folgenden Signaturen implementiert werden:This method must be implemented with one or both of the following signatures:

public static Object Parse(string)

public static Object Parse(string, IFormatProvider)

Gilt für:

Siehe auch