MaskedTextBox.ValidatingType Proprietà

Definizione

Ottiene o imposta il tipo di dati utilizzato per verificare l'input di dati dell'utente.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; }
[<System.ComponentModel.Browsable(false)>]
member this.ValidatingType : Type with get, set
Public Property ValidatingType As Type

Valore della proprietà

Type

Oggetto Type che rappresenta il tipo di dati utilizzato nella convalida.A Type representing the data type used in validation. Il valore predefinito è null.The default is null.

Attributi

Esempio

Nell'esempio di codice seguente viene eseguito un tentativo di analizzare l'input dell'utente come valido DateTime .The following code example attempts to parse the user's input as a valid DateTime. Se ha esito negativo, il TypeValidationCompleted gestore eventi Visualizza un messaggio di errore all'utente.If it fails, the TypeValidationCompleted event handler displays an error message to the user. Se il valore è valido DateTime , il codice esegue un controllo aggiuntivo per assicurarsi che la data specificata non sia precedente alla data odierna.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. Questo esempio di codice richiede che il progetto di Windows Form contenga un MaskedTextBox controllo denominato MaskedTextBox1 e un ToolTip controllo denominato ToolTip1 .This 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

Commenti

Le maschere non garantiscono di per sé che l'input di un utente rappresenti un valore valido per un determinato tipo.Masks do not in themselves guarantee that a user's input will represent a valid value for a given type. Il codice C# seguente mostra una maschera:The following C# code shows a mask:

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

Il codice di Visual Basic seguente mostra una maschera:The following Visual Basic code shows a mask:

MaskedTextBox1.Mask = "99/99/9999"

Questa maschera può richiedere che l'utente immetta otto cifre, ma non è in grado di verificare che l'utente immetta i valori month, date e year nell'intervallo corretto; "12/20/2003" e "70/90/0000" sono ugualmente validi per quanto riguarda la maschera.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.

È possibile usare ValidatingType per verificare se i dati immessi dall'utente rientrano nell'intervallo corretto, nel caso indicato in precedenza, assegnando un'istanza del DateTime tipo.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. Il testo corrente nel controllo verrà convalidato quando l'utente lascia il controllo.The current text in the control will be validated either when the user leaves the control. È possibile determinare se la convalida dei dati ha esito negativo monitorando l' TypeValidationCompleted evento.You can determine whether or not the data fails validation by monitoring for the TypeValidationCompleted event. MaskedTextBox eseguirà solo il controllo ValidatingType se MaskCompleted è true .MaskedTextBox will only perform the check against ValidatingType if MaskCompleted is true.

Se si desidera utilizzare tipi di dati personalizzati con ValidatingType , è necessario implementare un Parse metodo statico che accetta una stringa come parametro.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. Questo metodo deve essere implementato con una o entrambe le firme seguenti:This method must be implemented with one or both of the following signatures:

public static Object Parse(string)

public static Object Parse(string, IFormatProvider)

Si applica a

Vedi anche