Compartir a través de


Procedimiento para mostrar iconos de error para la validación de formularios con el componente ErrorProvider de formularios Windows Forms

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

  1. Agregue dos controles (por ejemplo, cuadros de texto) a un formulario de 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 Procedimiento para 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 método SetError. El primer argumento del método SetError especifica el control junto al que 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# y Visual C++). Incluya 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, luego, tabule al segundo. Cuando se muestre el icono de error, señálelo con el puntero del mouse para ver el texto del error.

Consulte también