Control.Validating Evento

Definición

Se produce cuando el control se está validando.

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

Tipo de evento

Ejemplos

En el ejemplo de código siguiente se usa la clase TextBox derivada y se valida una dirección de correo electrónico que el usuario escribe. Si la dirección de correo electrónico no está en el formato estándar (que contiene "@" y "."), se produce un error en la validación, se muestra un ErrorProvider icono y se cancela el evento. En este ejemplo se requiere que se haya creado un TextBox control y ErrorProvider en un formulario.

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;
}

Comentarios

Al cambiar el foco mediante el teclado (TAB, MAYÚS+TAB, etc.), llamando a los Select métodos o SelectNextControl , o estableciendo la ContainerControl.ActiveControl propiedad en el formulario actual, los eventos de foco se producen en el orden siguiente:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

Al cambiar el foco mediante el mouse o llamando al Focus método , los eventos de foco se producen en el orden siguiente:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

Si la CausesValidation propiedad se establece falseen , se suprimen los Validating eventos y Validated .

Si la Cancel propiedad de CancelEventArgs se establece true en en en el delegado de Validating eventos, todos los eventos que normalmente se producirían después de suprimir el Validating evento.

Advertencia

No intente establecer el foco desde los Entercontroladores de eventos , , LostFocusGotFocusLeave, , Validatingo Validated . Si lo hace, la aplicación o el sistema operativo dejarán de responder. Para obtener más información, vea el WM_KILLFOCUS tema de la sección "Referencia de entrada de teclado" y la sección "Interbloqueos de mensajes" del artículo Acerca de mensajes y colas de mensajes .

Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.

Se aplica a

Produto Versións
.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

Consulte también