Export (0) Print
Expand All

MaskedTextBox.ValidatingType Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets the data type used to verify the data input by the user.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public Type ValidatingType { get; set; }
/** @property */
public Type get_ValidatingType ()

/** @property */
public void set_ValidatingType (Type value)

public function get ValidatingType () : Type

public function set ValidatingType (value : Type)

Property Value

A 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 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, maskedTextBox1.Location.X, maskedTextBox1.Location.Y, 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, maskedTextBox1.Location.X, maskedTextBox1.Location.Y, 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);
}

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.

.NET Framework

Supported in: 2.0

Community Additions

ADD
Show:
© 2014 Microsoft