Assembly: System.Windows.Forms (in system.windows.forms.dll)
'Declaration Public Property ValidatingType As Type 'Usage Dim instance As MaskedTextBox Dim value As Type value = instance.ValidatingType instance.ValidatingType = value
/** @property */ public Type get_ValidatingType () /** @property */ public void set_ValidatingType (Type value)
public function get ValidatingType () : Type public function set ValidatingType (value : Type)
Property ValueA Type representing the data type used in validation. The default is a null reference (Nothing in Visual Basic).
Masks do not in themselves guarantee that a user's input will represent a valid value for a given type. The following C# code shows a mask:
maskedTextBox1.Mask = "99/99/9999";
The following Visual Basic code shows a mask:
MaskedTextBox1.Mask = "99/99/9999"
This mask can demand that the user enter eight digits, but cannot verify that the user enters month, date, and year values in the correct range; "12/20/2003" and "70/90/0000" are equally valid as far as the mask is concerned.
You can use ValidatingType to verify whether the data entered by the user falls within the correct range—in the previously mentioned case, by assigning it an instance of the DateTime type. The current text in the control will be validated either when the user leaves the control. You can determine whether or not the data fails validation by monitoring for the TypeValidationCompleted event. MaskedTextBox will only perform the check against ValidatingType if MaskCompleted is true.
If you want to use your own custom data types with ValidatingType, you must implement a static Parse method that takes a string as a parameter. This method must be implemented with one or both of the following signatures:
public static Object Parse(string)
public static Object Parse(string, IFormatProvider)
For an example of how to implement parsing on a custom data type, see MaskedTextBox Control Sample.
The following code example attempts to parse the user's input as a valid DateTime. If it fails, the TypeValidationCompleted event handler displays an error message to the user. If the value is a valid DateTime, the code performs an additional check to ensure that the date supplied is not prior to today's date. This code example requires that your Windows Forms project contains a MaskedTextBox control named MaskedTextBox1 and a ToolTip control named ToolTip1.
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, Me.MaskedTextBox1.Location.X, Me.MaskedTextBox1.Location.Y, 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, Me.MaskedTextBox1.Location.X, Me.MaskedTextBox1.Location.Y, 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
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.