Sdílet prostřednictvím


MaskedTextBox.TypeValidationCompleted Událost

Definice

Nastane po MaskedTextBox dokončení analýzy aktuální hodnoty pomocí ValidatingType vlastnosti .

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 

Event Type

Příklady

Následující příklad kódu se pokusí analyzovat vstup uživatele jako platný DateTime objekt. Pokud selže, obslužná TypeValidationCompleted rutina události zobrazí uživateli chybovou zprávu. Pokud je hodnota platná DateTime, kód ověří, že zadané datum není před dnešním datem. Tento příklad kódu vyžaduje, aby projekt model Windows Forms obsahoval MaskedTextBox ovládací prvek s názvem MaskedTextBox1 a ToolTip ovládací prvek s názvem 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

Poznámky

Ovládací MaskedTextBox prvek volitelně ověří uživatelský vstup proti typu definovanému jeho MaskedTextBox.ValidatingType vlastností. Pokud tato vlastnost není null, dojde k následující řadě událostí:

  1. Ověřovací sekvence začíná, když nastane jedna z těchto věcí:

  2. Každá z těchto událostí má za následek volání Parse metody typu zadaného ValidatingType pomocí vlastnosti. Parse je zodpovědný za převod formátovaného vstupního řetězce na cílový typ. Úspěšný převod odpovídá úspěšnému ověření.

  3. Po Parse vrácení TypeValidationCompleted se událost vyvolá. Obslužná rutina události pro tuto událost se nejčastěji implementuje za účelem zpracování ověření typu nebo masky. Obdrží TypeValidationEventArgs parametr obsahující informace o převodu, například člen označuje, IsValidInput jestli byl převod úspěšný.

  4. Jakmile se obslužná rutina události vrátí TypeValidationCompleted , vyvolá se standardní ověřovací událost Validating, . Obslužnou rutinu lze implementovat za účelem provedení standardního ověření, například včetně zrušení události.

  5. Pokud se událost nezruší v kroku 3, vyvolá se událost Validated ověření standardního ovládacího prvku.

Cancel Pokud je vlastnost v TypeValidationCompleted obslužné rutině události nastavená natrue, událost se zruší a MaskedTextBox ovládací prvek zachová fokus, pokud následující Validating událost nenastaví svou verzi CancelEventArgs.Cancel vlastnosti zpět na false.

Platí pro

Viz také