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, 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í:
Ověřovací sekvence začíná, když nastane jedna z těchto věcí:
MaskedTextBox ovládací prvek uvolní fokus.
Vlastnost Text se načte.
Metoda ValidateText je volána.
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í.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ý.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.
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
.