MaskedTextBox.ValidatingType Vlastnost
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í.
Získá nebo nastaví datový typ použitý k ověření vstupu dat uživatelem.
public:
property Type ^ ValidatingType { Type ^ get(); void set(Type ^ value); };
[System.ComponentModel.Browsable(false)]
public Type ValidatingType { get; set; }
[System.ComponentModel.Browsable(false)]
public Type? ValidatingType { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.ValidatingType : Type with get, set
Public Property ValidatingType As Type
Hodnota vlastnosti
Představuje Type datový typ použitý při ověřování. Výchozí hodnota je null.
- Atributy
Příklady
Následující příklad kódu se pokusí analyzovat vstup uživatele jako platný DateTime. Pokud selže, TypeValidationCompleted obslužná rutina události uživateli zobrazí chybovou zprávu. Pokud je hodnota platná DateTime, kód provede další kontrolu, aby se zajistilo, že zadané datum není před dnešním datem. Tento příklad kódu vyžaduje, aby váš projekt model 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
Masky samy o sobě nezaručují, že vstup uživatele bude představovat platnou hodnotu pro daný typ. Následující kód jazyka C# ukazuje masku:
maskedTextBox1.Mask = "99/99/9999";
Následující kód Visual Basic ukazuje masku:
MaskedTextBox1.Mask = "99/99/9999"
Tato maska může požadovat, aby uživatel zadal osm číslic, ale nemůže ověřit, zda uživatel zadá hodnoty měsíce, data a roku do správného rozsahu; "12/20/2003" a "70/90/0000" jsou stejně platné, pokud jde o masku.
Můžete použít ValidatingType k ověření, zda data zadaná uživatelem spadají do správného rozsahu – v dříve zmíněném případě tím, že je přiřadíte instanci DateTime typu. Aktuální text v ovládacím prvku se ověří, a to buď po opuštění ovládacího prvku uživatelem. Monitorováním TypeValidationCompleted události můžete určit, jestli data selhala nebo ne.
MaskedTextBox provede kontrolu ValidatingType pouze v případě, že MaskCompleted je true.
Pokud chcete použít vlastní datové typy s ValidatingType, musíte implementovat statickou Parse metodu, která přebírá řetězec jako parametr. Tato metoda musí být implementována s jedním nebo oběma následujícími podpisy:
public static Object Parse(string)
public static Object Parse(string, IFormatProvider)