MaskedTextBox.TypeValidationCompleted Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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í:
Ověřovací sekvence začíná, když nastane jedna z následujících situací:
MaskedTextBox ovládnutí uvolní fokus.
Vlastnost Text se načte.
Volá se metoda ValidateText.
Každá z těchto událostí má za následek volání
Parsemetody typu zadaného s ValidatingType vlastností.Parsezodpoví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í.Po
Parsená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ý.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.
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