ValidatingType-Eigenschaft

MaskedTextBox.ValidatingType-Eigenschaft

Hinweis: Diese Eigenschaft ist neu in .NET Framework, Version 2.0.

Ruft den Datentyp ab, der verwendet wird, um die Dateneingabe durch den Benutzer zu überprüfen, oder legt diesen fest.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public Type ValidatingType { get; set; }
/** @property */
public Type get_ValidatingType ()

/** @property */
public void set_ValidatingType (Type value)

public function get ValidatingType () : Type

public function set ValidatingType (value : Type)

Eigenschaftenwert

Ein Type, der den bei der Validierung verwendeten Datentyp darstellt. Der Standardwert ist NULL (Nothing in Visual Basic).

Durch Masken wird nicht automatisch sichergestellt, dass die Eingabe eines Benutzers einen gültigen Wert für einen angegebenen Typ darstellt. Im folgenden C#-Code wird eine Maske dargestellt:

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

Im folgenden Visual Basic-Code wird eine Maske dargestellt:

MaskedTextBox1.Mask = "99/99/9999"

Diese Maske kann zwar die Eingabe von acht Ziffern erfordern, eine Überprüfung, ob der Benutzer die Werte für Monat, Datum und Jahr im richtigen Bereich eingibt, kann jedoch nicht stattfinden. "12/20/2003" und "70/90/0000" sind für die Maske gleichermaßen gültig.

Sie können ValidatingType verwenden, um zu überprüfen, ob die eingegebenen Daten im korrekten Bereich liegen – im vorangehenden Fall durch Zuweisen einer Instanz des DateTime-Typs. Der aktuelle Text im Steuerelement wird validiert, wenn der Benutzer das Steuerelement verlässt. Sie können bestimmen, ob die Validierung der Daten erfolgreich ausgeführt wird, indem Sie das Auftreten des TypeValidationCompleted-Ereignisses überwachen. MaskedTextBox führt nur dann die Prüfung mit ValidatingType aus, wenn MaskCompleted den Wert true hat.

Wenn Sie eigene benutzerdefinierte Datentypen mit ValidatingType verwenden möchten, müssen Sie eine statische Parse-Methode implementieren, die eine Zeichenfolge als Parameter annimmt. Diese Methode muss mit einer oder beiden folgenden Signaturen implementiert werden:

public static Object Parse(string)

public static Object Parse(string, IFormatProvider)

Ein Beispiel zur Implementierung einer Analyse für einen benutzerdefinierten Datentyp finden Sie unter Beispiel für das MaskedTextBox-Steuerelement.

Im folgenden Codebeispiel wird versucht, die Eingabe des Benutzers als gültigen DateTime-Wert zu analysieren. Wenn dies fehlschlägt, zeigt der TypeValidationCompleted-Ereignishandler eine Fehlermeldung an. Wenn der Wert ein gültiger DateTime-Wert ist, wird durch den Code eine zusätzliche Prüfung ausgeführt, um sicherzustellen, dass das angegebene Datum nicht vor dem heutigen Datum liegt. Für dieses Codebeispiel ist es erforderlich, dass das Windows Forms-Projekt ein MaskedTextBox-Steuerelement mit dem Namen MaskedTextBox1 und ein ToolTip-Steuerelement mit dem Namen ToolTip1 besitzt.

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, maskedTextBox1.Location.X, maskedTextBox1.Location.Y, 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, maskedTextBox1.Location.X, maskedTextBox1.Location.Y, 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);
}

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen:
© 2016 Microsoft