Compartir a través de


Cómo: Mostrar iconos de error para la validación de formularios con el componente ErrorProvider de formularios Windows Forms

Puede utilizar un componente ErrorProvider de formularios Windows Forms para que se muestre un icono de error cuando el usuario escriba datos no válidos. El formulario debe tener al menos dos controles para pasar de un control a otro mediante tabulación e invocar el código de validación.

Para mostrar un icono de error cuando el valor de un control no es válido

  1. Agregue dos controles, por ejemplo, cuadros de texto, a un formulario Windows Forms.

  2. Agregue un componente ErrorProvider al formulario.

  3. Seleccione el primer control y agregue código a su controlador de eventos Validating. Para que este código se ejecute correctamente, el procedimiento debe estar conectado al evento. Para obtener más información, vea Cómo: Crear controladores de eventos en tiempo de ejecución para formularios Windows Forms.

    En el código siguiente se comprueba la validez de los datos escritos por el usuario; si los datos no son válidos, se llama al método SetError. El primer argumento del método SetError especifica junto a qué control se muestra el icono. El segundo argumento es el texto de error que debe mostrarse.

    Private Sub TextBox1_Validating(ByVal Sender As Object, _
       ByVal e As System.ComponentModel.CancelEventArgs) Handles _
       TextBox1.Validating
          If Not IsNumeric(TextBox1.Text) Then
             ErrorProvider1.SetError(TextBox1, "Not a numeric value.")
          Else
             ' Clear the error.
             ErrorProvider1.SetError(TextBox1, "")
          End If
    End Sub
    
    protected void textBox1_Validating (object sender,
       System.ComponentModel.CancelEventArgs e)
    {
       try
       {
          int x = Int32.Parse(textBox1.Text);
          errorProvider1.SetError(textBox1, "");
       }
       catch (Exception ex)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    protected void textBox1_Validating(Object sender, CancelEventArgs e) 
    {
       try 
       {
          int x = Int32.Parse(textBox1.get_Text());
          errorProvider1.SetError(textBox1, "");
       }
       catch(Exception ex)
       {
          errorProvider1.SetError(textBox1, "Not an integer value.");
       }
    }
    
    private:
       System::Void textBox1_Validating(System::Object ^  sender,
          System::ComponentModel::CancelEventArgs ^  e)
       {
          try
          {
             int x = Int32::Parse(textBox1->Text);
             errorProvider1->SetError(textBox1, "");
          }
          catch (System::Exception ^ ex)
          {
             errorProvider1->SetError(textBox1, "Not an integer value.");
          }
       }
    

    (Visual C#, Visual C++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.

    this.textBox1.Validating += new
    System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
    
    this->textBox1->Validating += gcnew
       System::ComponentModel::CancelEventHandler
       (this, &Form1::textBox1_Validating);
    
  4. Ejecute el proyecto. Escriba datos no válidos (en este ejemplo, no numéricos) en el primer control y, a continuación, utilice el tabulador para pasar al segundo. Cuando se muestre el icono de error, apunte al icono con el puntero del mouse para ver el texto de error.

Vea también

Tareas

Cómo: Ver errores de un conjunto de datos con el componente ErrorProvider de formularios Windows Forms

Referencia

SetError

Información general del componente ErrorProvider (Formularios Windows Forms)