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 命名空間