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 など) を使用してフォーカスを変更したり、 メソッドや SelectNextControl メソッドを呼び出Selectしたり、 プロパティを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

プロパティが CausesValidationfalse設定されている場合、 Validating イベントと Validated イベントは抑制されます。

Cancelイベント デリゲートで ValidatingCancelEventArgs プロパティが にtrue設定されている場合、通常はイベントの後にValidating発生するすべてのイベントが抑制されます。

注意事項

、または イベント ハンドラー内EnterGotFocusLostFocusLeaveValidatingからフォーカスを設定しないでください。Validated これにより、アプリケーションまたはオペレーティング システムが応答を停止する可能性があります。 詳細については、「 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

こちらもご覧ください