次の方法で共有


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 セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

ContentControlBase インターフェイス

Microsoft.Office.Tools.Word 名前空間