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, TypeValidationCompleted obslužná rutina události uživateli zobrazí 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 váš projekt Windows Forms obsahuje ovládací prvek pojmenovaný MaskedTextBoxMaskedTextBox1 a pojmenovaný ToolTipToolTip1ovládací prvek .

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 následujících situací:

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

  3. Po Parse návratu TypeValidationCompleted se událost vyvolá. Obslužná rutina události pro tuto událost je nejčastěji implementována k provedení zpracování typu nebo maskování ověření. Obdrží TypeValidationEventArgs parametr obsahující informace o převodu, například člen označuje, IsValidInput zda byl převod úspěšný.

  4. Jakmile se obslužná rutina události pro TypeValidationCompleted událost vrátí, je vyvolána standardní ověřovací událost Validating. Obslužnou rutinu lze implementovat k provedení standardního ověření, například zrušení události.

  5. Pokud událost není zrušena v kroku 3, je vyvolána standardní událost Validated ověření ovládacího prvku.

Pokud je vlastnost nastavena Cancel v trueTypeValidationCompleted obslužné rutině události, událost bude zrušena a MaskedTextBox ovládací prvek zachová fokus, pokud následná Validating událost nenastaví jeho verzi CancelEventArgs.Cancel vlastnosti zpět .false

Platí pro

Viz také