MaskedTextBox.TypeValidationCompleted MaskedTextBox.TypeValidationCompleted MaskedTextBox.TypeValidationCompleted MaskedTextBox.TypeValidationCompleted Event


MaskedTextBoxValidatingType プロパティを使用して現在の値の解析を完了した場合に発生します。Occurs when MaskedTextBox has finished parsing the current value using the ValidatingType property.

 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 

次のコード例では、ユーザーの入力を有効なDateTimeオブジェクトとして解析しようとしています。The following code example attempts to parse the user's input as a valid DateTime object. 失敗した場合はTypeValidationCompleted 、イベントハンドラーによってエラーメッセージがユーザーに表示されます。If it fails, the TypeValidationCompleted event handler displays an error message to the user. 値が有効DateTimeな場合、コードは、指定された日付が今日の日付より前でないことを確認します。If the value is a valid DateTime, the code verifies that the date supplied is not prior to today's date. このコード例では、Windows フォームプロジェクトにとMaskedTextBoxいうMaskedTextBox1名前のコントロールToolTipととToolTip1いう名前のコントロールが含まれている必要があります。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);
        //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)
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)
        ' 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
End Sub


コントロールMaskedTextBoxは、必要に応じて、 MaskedTextBox.ValidatingTypeプロパティによって定義された型に対してユーザー入力を検証します。The MaskedTextBox control will optionally validate user input against the type defined by its MaskedTextBox.ValidatingType property. このプロパティがでないnull場合、次の一連のイベントが発生します。When this property is not null, the following series of events occurs:

  1. 検証シーケンスは、次のいずれかの状況で開始されます。The validation sequence begins when one of the following occurs:

  2. これらのイベントのいずれかによって、 Parse ValidatingTypeプロパティで指定された型のメソッドが呼び出されます。Any of these events result in a call to the Parse method of the type specified with the ValidatingType property. Parseは、書式設定された入力文字列を対象の型に変換する処理を行います。Parse is responsible for the conversion of the formatted input string to the target type. 正常に変換された場合は、検証に成功したものと見なされます。A successful conversion equates to a successful validation.

  3. が返されるTypeValidationCompletedと、イベントが発生します。 ParseAfter Parse returns, the TypeValidationCompleted event is raised. このイベントのイベントハンドラーは、型またはマスクの検証処理を実行するために最も一般的に実装されています。The event handler for this event is most commonly implemented to perform type or mask validation processing. 変換に関するTypeValidationEventArgs情報を含むパラメーターを受け取ります。たとえば、メンバー IsValidInputは、変換が成功したかどうかを示します。It receives a TypeValidationEventArgs parameter containing information about the conversion; for example, the IsValidInput member indicates whether the conversion was successful.

  4. TypeValidationCompletedイベントのイベントハンドラーによってが返されると、標準のValidating検証イベントであるが発生します。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.

  5. 手順 3. でイベントがキャンセルされていない場合は、 Validated標準のコントロール検証イベントが発生します。If the event is not canceled in step 3, the standard control validation event Validated is raised.

Validating CancelEventArgs.Cancel true MaskedTextBoxイベントハンドラーでCancelプロパティがに設定されている場合、イベントはキャンセルされ、コントロールはフォーカスを保持します。ただし、後続のイベントがプロパティのバージョンを設定する場合を除きます。 TypeValidationCompletedfalse戻ります。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.