Partage via


Control.Validating Événement

Définition

Se produit lors de la validation du contrôle.

public:
 event System::ComponentModel::CancelEventHandler ^ Validating;
public event System.ComponentModel.CancelEventHandler Validating;
public event System.ComponentModel.CancelEventHandler? Validating;
member this.Validating : System.ComponentModel.CancelEventHandler 
Public Custom Event Validating As CancelEventHandler 

Type d'événement

Exemples

L’exemple de code suivant utilise la classe TextBox dérivée et valide une adresse e-mail que l’utilisateur entre. Si l’adresse e-mail n’est pas au format standard (contenant « @ » et « ». ), la validation échoue, une ErrorProvider icône s’affiche et l’événement est annulé. Cet exemple nécessite qu’un TextBox contrôle et ErrorProvider ait été créé sur un formulaire.

private:
   void textBox1_Validating( Object^ sender, System::ComponentModel::CancelEventArgs^ e )
   {
      String^ errorMsg;
      if ( !ValidEmailAddress( textBox1->Text, &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 );
      }
   }

   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]interior_ptr<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;
   }
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;
}
   Private Function ValidEmailAddress(ByVal emailAddress As String, ByRef errorMessage As String) As Boolean
      ' Confirm there is text in the control.
      If textBox1.Text.Length = 0 Then
         errorMessage = "Email address is required."
         Return False

      End If

      ' Confirm that there is an "@" and a "." in the email address, and in the correct order.
      If emailAddress.IndexOf("@") > -1 Then
         If (emailAddress.IndexOf(".", emailAddress.IndexOf("@")) > emailAddress.IndexOf("@")) Then
            errorMessage = ""
            Return True
         End If
      End If

      errorMessage = "Email address must be valid email address format." + ControlChars.Cr + _
        "For example 'someone@example.com' "
      Return False
End Function

   Private Sub textBox1_Validating(ByVal sender As Object, _
   ByVal e As System.ComponentModel.CancelEventArgs) Handles textBox1.Validating

      Dim errorMsg As String
      If Not ValidEmailAddress(textBox1.Text, errorMsg) Then
         ' 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. 
         Me.errorProvider1.SetError(textBox1, errorMsg)
      End If
   End Sub


   Private Sub textBox1_Validated(ByVal sender As Object, _
   ByVal e As System.EventArgs) Handles textBox1.Validated
      ' If all conditions have been met, clear the error provider of errors.
      errorProvider1.SetError(textBox1, "")
   End Sub

Remarques

Lorsque vous modifiez le focus à l’aide du clavier (TAB, MAJ+TAB, et ainsi de suite), en appelant les Select méthodes ou SelectNextControl ou en définissant la ContainerControl.ActiveControl propriété sur le formulaire actuel, les événements de focus se produisent dans l’ordre suivant :

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

Lorsque vous modifiez le focus à l’aide de la souris ou en appelant la Focus méthode, les événements de focus se produisent dans l’ordre suivant :

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

Si la CausesValidation propriété a la falsevaleur , les Validating événements et Validated sont supprimés.

Si la Cancel propriété de est CancelEventArgs définie sur dans le délégué de true l’événement Validating , tous les événements qui se produisent généralement après la suppression de l’événement Validating .

Attention

N’essayez pas de définir le Enterfocus à partir des gestionnaires d’événements , GotFocusLeave, LostFocus, Validating, ou Validated . Cela peut entraîner l’arrêt de la réponse de votre application ou du système d’exploitation. Pour plus d’informations, consultez la WM_KILLFOCUS rubrique de la section « Référence d’entrée du clavier » et la section « Blocages des messages » de l’article À propos des messages et des files d’attente de messages .

Pour plus d'informations sur la gestion des événements, voir gestion et déclenchement d’événements.

S’applique à

Voir aussi