ContentControlBase.Validating イベント
コンテンツ コントロール内のコンテンツを検証中であるときに発生します。
名前空間: Microsoft.Office.Tools.Word
アセンブリ: Microsoft.Office.Tools.Word (Microsoft.Office.Tools.Word.dll 内)
構文
'宣言
Event Validating As CancelEventHandler
event CancelEventHandler Validating
解説
Validating イベントは、コントロールがフォーカスを失ったときに発生します。コンテンツ コントロール内のテキストが、指定した条件に対して有効であるかどうかを確認するには、Validating イベントを処理します。たとえば、電話番号を含むコンテンツ コントロールがある場合に、適切な文字 (数字、かっこ、ハイフンなど) だけが入力されていることを確認します。有効なコンテンツではない場合、イベントをキャンセルし、コントロールにフォーカスを戻すことができます。これを行うには、イベント ハンドラーの CancelEventArgs パラメーターの Cancel プロパティを true に設定します。このように設定すると、有効なテキストを入力するまでユーザーはこのコントロールから移動できなくなります。
コンテンツ コントロールの検証が正常に完了した後にコードを実行するには、Validated イベントを処理します。
イベント処理の詳細については、「イベントの利用」を参照してください。
例
Validating イベントおよび Validated イベント用のイベント ハンドラーのコード例を次に示します。エンド ユーザーによってコンテンツ コントロール内のテキストが変更されると、Validating イベントのイベント ハンドラーは正規表現を使用して、テキストに整数が含まれていないことを確認します。
この例では、文書に plainTextContentControl1 という名前の PlainTextContentControl が含まれることを前提としています。このコードを使用するには、プロジェクトの ThisDocument クラスにコードを貼り付けます。C# では、さらにイベント ハンドラーを plainTextContentControl1 の Validated イベントおよび Validating イベントに結び付ける必要があります。
この例は、ドキュメント レベルのカスタマイズ用に作成されています。
Private Sub plainTextContentControl1_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles PlainTextContentControl1.Validating
Dim control As Microsoft.Office.Tools.Word.PlainTextContentControl = _
TryCast(sender, Microsoft.Office.Tools.Word.PlainTextContentControl)
If control IsNot Nothing Then
Dim regex As New System.Text.RegularExpressions.Regex("\d")
If regex.IsMatch(control.Text) Then
MessageBox.Show("Invalid name. Names cannot contain integers.")
e.Cancel = True
End If
End If
End Sub
Private Sub plainTextContentControl1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles PlainTextContentControl1.Validated
MessageBox.Show("The name is valid.")
End Sub
void plainTextContentControl1_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
Microsoft.Office.Tools.Word.PlainTextContentControl control =
sender as Microsoft.Office.Tools.Word.PlainTextContentControl;
if (control != null)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\d");
if (regex.IsMatch(control.Text))
{
MessageBox.Show("Invalid name. Names cannot contain integers.");
e.Cancel = true;
}
}
}
void plainTextContentControl1_Validated(object sender, EventArgs e)
{
MessageBox.Show("The name is valid.");
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。