MaskedTextBox.ValidatingType Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja a felhasználó által bevitt adatok ellenőrzéséhez használt adattípust.
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
Tulajdonság értéke
Az Type ellenőrzés során használt adattípust jelöli. Az alapértelmezett érték a null.
- Attribútumok
Példák
Az alábbi példakód megpróbálja érvényesként DateTimeelemezni a felhasználó bemenetét. Ha nem sikerül, az TypeValidationCompleted eseménykezelő hibaüzenetet jelenít meg a felhasználónak. Ha az érték érvényes DateTime, a kód egy további ellenőrzést végez annak ellenőrzéséhez, hogy a megadott dátum nem korábbi-e a mai dátum előtt. Ez a példakód megköveteli, hogy a Windows Forms projekt tartalmazzon egy MaskedTextBox vezérlőt MaskedTextBox1 és egy ToolTip vezérlőelemet ToolTip1 néven.
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
Megjegyzések
A maszkok önmagukban nem garantálják, hogy a felhasználó bemenete érvényes értéket képvisel egy adott típushoz. A következő C#-kód egy maszkot jelenít meg:
maskedTextBox1.Mask = "99/99/9999";
A következő Visual Basic kód egy maszkot jelenít meg:
MaskedTextBox1.Mask = "99/99/9999"
Ez a maszk megkövetelheti, hogy a felhasználó nyolc számjegyet adjon meg, de nem tudja ellenőrizni, hogy a felhasználó a hónap, a dátum és az év értékeit a megfelelő tartományban adja-e meg; A "12/20/20/2003" és a "70/90/0000" egyaránt érvényes a maszk tekintetében.
ValidatingType Segítségével ellenőrizheti, hogy a felhasználó által megadott adatok a megfelelő tartományba tartoznak-e – a korábban említett esetben egy ilyen típusú példány DateTime hozzárendelésével. A vezérlő aktuális szövege akkor lesz érvényesítve, ha a felhasználó elhagyja a vezérlőt. Az esemény figyelésével TypeValidationCompleted megállapíthatja, hogy az adatok érvényesítése sikertelen-e.
MaskedTextBox csak akkor hajtja végre az ellenőrzést ValidatingType , ha MaskCompleted igen true.
Ha saját egyéni adattípusokat ValidatingTypeszeretne használni, akkor olyan statikus Parse metódust kell implementálnia, amely paraméterként egy sztringet vesz igénybe. Ezt a módszert a következő aláírások egyikével vagy mindkettővel kell implementálnia:
public static Object Parse(string)
public static Object Parse(string, IFormatProvider)