Control.Validating 事件

定義

發生於驗證控制項時。

C#
public event System.ComponentModel.CancelEventHandler Validating;
C#
public event System.ComponentModel.CancelEventHandler? Validating;

事件類型

範例

下列程式碼範例會使用衍生類別 TextBox ,並驗證使用者輸入的電子郵件地址。 如果電子郵件地址不是標準格式, (包含 「@」 和 「」。) ,驗證失敗、 ErrorProvider 顯示圖示,並取消事件。 此範例要求 TextBox 已在表單上建立 和 ErrorProvider 控制項。

C#
private void textBox1_Validating(object sender, 
                System.ComponentModel.CancelEventArgs e)
{
   string errorMsg;
   if(!ValidEmailAddress(textBox1.Text, out errorMsg))
   {
      // Cancel the event and select the text to be corrected by the user.
      e.Cancel = true;
      textBox1.Select(0, textBox1.Text.Length);

      // Set the ErrorProvider error with the text to display. 
      this.errorProvider1.SetError(textBox1, errorMsg);
   }
}

private void textBox1_Validated(object sender, System.EventArgs e)
{
   // If all conditions have been met, clear the ErrorProvider of errors.
   errorProvider1.SetError(textBox1, "");
}
public bool ValidEmailAddress(string emailAddress, out string errorMessage)
{
   // Confirm that the email address string is not empty.
   if(emailAddress.Length == 0)
   {
      errorMessage = "email address is required.";
         return false;
   }

   // Confirm that there is an "@" and a "." in the email address, and in the correct order.
   if(emailAddress.IndexOf("@") > -1)
   {
      if(emailAddress.IndexOf(".", emailAddress.IndexOf("@") ) > emailAddress.IndexOf("@") )
      {
         errorMessage = "";
         return true;
      }
   }
   
   errorMessage = "email address must be valid email address format.\n" +
      "For example 'someone@example.com' ";
      return false;
}

備註

當您使用鍵盤 (TAB、SHIFT+TAB 等) 、呼叫 SelectSelectNextControl 方法,或將 屬性設定 ContainerControl.ActiveControl 為目前表單來變更焦點時,焦點事件會依下列順序發生:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

當您使用滑鼠或呼叫 Focus 方法來變更焦點時,焦點事件會依下列順序發生:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

CausesValidation如果 屬性設定為 false ,則會 Validating 隱藏 和 Validated 事件。

如果在事件委派中將 CancelCancelEventArgs 屬性設定為 true ,則通常會在隱藏事件之後 Validating 發生的所有事件。 Validating

警告

請勿嘗試從 、 GotFocusLeaveLostFocusValidatingValidated 事件處理常式內 Enter 設定焦點。 這樣做可能會導致您的應用程式或作業系統停止回應。 如需詳細資訊,請參閱 WM_KILLFOCUS 一節中的主題,以及 關於訊息和訊息佇列 一文的一節。

如需處理事件的詳細資訊,請參閱 處理和引發事件

適用於

產品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另請參閱