MaskedTextBox.TypeValidationCompleted Händelse

Definition

Inträffar när MaskedTextBox du har parsat det aktuella värdet med hjälp av ValidatingType egenskapen .

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 

Händelsetyp

Exempel

Följande kodexempel försöker parsa användarens indata som ett giltigt DateTime objekt. Om det misslyckas TypeValidationCompleted visar händelsehanteraren ett felmeddelande för användaren. Om värdet är giltigt DateTimeverifierar koden att det angivna datumet inte är före dagens datum. Det här kodexemplet kräver att ditt Windows Forms projekt innehåller en MaskedTextBox-kontroll med namnet MaskedTextBox1 och en ToolTip-kontroll med namnet 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

Kommentarer

Kontrollen MaskedTextBox verifierar eventuellt användarindata mot den typ som definieras av dess MaskedTextBox.ValidatingType egenskap. När den här egenskapen inte nullär inträffar följande serie händelser:

  1. Valideringssekvensen börjar när något av följande inträffar:

  2. Någon av dessa händelser resulterar i ett anrop till Parse metoden av den typ som anges med ValidatingType egenskapen . Parse ansvarar för konverteringen av den formaterade indatasträngen till måltypen. En lyckad konvertering motsvarar en lyckad validering.

  3. När Parse den har returnerats TypeValidationCompleted utlöses händelsen. Händelsehanteraren för den här händelsen implementeras oftast för att utföra typ- eller maskverifieringsbearbetning. Den tar emot en TypeValidationEventArgs parameter som innehåller information om konverteringen, IsValidInput till exempel anger medlemmen om konverteringen lyckades.

  4. När händelsehanteraren för TypeValidationCompleted händelsen returneras utlöses standardverifieringshändelsen , Validating. En hanterare kan implementeras för att utföra standardverifiering, kanske inklusive att avbryta händelsen.

  5. Om händelsen inte avbryts i steg 3 utlöses standardkontrollens valideringshändelse Validated .

Om egenskapen Cancel är inställd true på i TypeValidationCompleted händelsehanteraren avbryts händelsen och MaskedTextBox kontrollen behåller fokus, såvida inte den efterföljande Validating händelsen anger dess version av CancelEventArgs.Cancel egenskapen till false.

Gäller för

Se även