Compartir a través de


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

Puede usar un componente de Windows Forms ErrorProvider para mostrar un icono de error cuando el usuario escribe datos no válidos. Debe tener al menos dos controles en el formulario para poder tabular entre ellos 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 ErrorProvider componente al formulario.

  3. Seleccione el primer control y agregue código a su Validating controlador de eventos. 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 Windows Forms.

    El código siguiente comprueba la validez de los datos que ha escrito el usuario; Si los datos no son válidos, se llama al SetError método . El primer argumento del método SetError especifica junto a qué control se mostrará el icono. El segundo argumento es el texto de error que se va a mostrar.

    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.");
       }
    }
    
    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, presione la tecla Tab para ir al segundo. Cuando se muestre el icono de error, apunte con el puntero del mouse para ver el texto del error.

Consulte también