MaskedTextBox.TypeValidationCompleted Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property.
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
Examples
The following code example attempts to parse the user's input as a valid DateTime object. If it fails, the TypeValidationCompleted event handler displays an error message to the user. If the value is a valid DateTime, the code verifies 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, 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
Remarks
The MaskedTextBox control will optionally validate user input against the type defined by its MaskedTextBox.ValidatingType property. When this property is not null
, the following series of events occurs:
The validation sequence begins when one of the following occurs:
MaskedTextBox control looses focus.
The Text property is retrieved.
The ValidateText method is called.
Any of these events result in a call to the
Parse
method of the type specified with the ValidatingType property.Parse
is responsible for the conversion of the formatted input string to the target type. A successful conversion equates to a successful validation.After
Parse
returns, the TypeValidationCompleted event is raised. The event handler for this event is most commonly implemented to perform type or mask validation processing. It receives a TypeValidationEventArgs parameter containing information about the conversion; for example, the IsValidInput member indicates whether the conversion was successful.After the event handler for the TypeValidationCompleted event returns, the standard validation event, Validating, is raised. A handler can be implemented to perform standard validation, perhaps including canceling the event.
If the event is not canceled in step 3, the standard control validation event Validated is raised.
If the Cancel property is set to true
in the TypeValidationCompleted event handler, the event will be canceled and the MaskedTextBox control retains focus, unless the subsequent Validating event sets its version of the CancelEventArgs.Cancel property back to false
.