MaskedTextBox.TypeValidationCompleted イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
MaskedTextBox が ValidatingType プロパティを使用して現在の値の解析を完了した場合に発生します。
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
イベントの種類
例
次のコード例では、ユーザーの入力を有効な DateTime オブジェクトとして解析しようとします。 失敗した場合、イベント ハンドラーは TypeValidationCompleted ユーザーにエラー メッセージを表示します。 値が有効 DateTimeな の場合、コードは、指定された日付が今日の日付より前ではないことを確認します。 このコード例では、Windows フォーム プロジェクトに という名前のMaskedTextBoxコントロールと という名前MaskedTextBox1
ToolTip1
のコントロールがToolTip含まれている必要があります。
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
注釈
コントロールは MaskedTextBox 、必要に応じて、そのプロパティで定義されている型に対してユーザー入力を MaskedTextBox.ValidatingType 検証します。 このプロパティが でない null
場合、次の一連のイベントが発生します。
検証シーケンスは、次のいずれかが発生したときに開始されます。
MaskedTextBox コントロールがフォーカスを緩めます。
Textプロパティが取得されます。
ValidateText メソッドが呼び出されます。
これらのイベントのいずれかが発生すると、 プロパティで指定された型のメソッドがValidatingType呼び出
Parse
されます。Parse
は、書式設定された入力文字列をターゲット型に変換する役割を担います。 変換が成功すると、検証が成功した場合と同じになります。が返された後
Parse
、 TypeValidationCompleted イベントが発生します。 このイベントのイベント ハンドラーは、型検証処理またはマスク検証処理を実行するために最も一般的に実装されます。 変換に関する情報を TypeValidationEventArgs 含むパラメーターを受け取ります。たとえば、 IsValidInput メンバーは変換が成功したかどうかを示します。イベントのイベント ハンドラーが返されると TypeValidationCompleted 、標準の検証イベント Validatingである が発生します。 イベントの取り消しなど、標準の検証を実行するハンドラーを実装できます。
手順 3 でイベントが取り消されない場合は、標準コントロール検証イベント Validated が発生します。
Cancelイベント ハンドラーで TypeValidationCompleted プロパティが にtrue
設定されている場合、後続Validatingのイベントがプロパティのバージョンを MaskedTextBox に戻さない限り、イベントは取り消され、コントロールはフォーカスをCancelEventArgs.Cancelfalse
保持します。
適用対象
こちらもご覧ください
.NET