El componente ErrorProvider

 

Fecha: 15/Jun/2005 (11/06/2005)
Autor: A. Percy Reyes Paredes

E_mail: Withoutlimits2983@hotmail.com - bigpercynet@hotmail.com

¡¡ Los peruanos SÍ podemos !!


Un proveedor de errores es una mejor alternativa que mostrar un mensaje de error en un cuadro de mensaje. Si muestra el mensaje de error en un cuadro de mensaje, el mensaje de error dejará de estar visible si el usuario borra el cuadro del mensaje. En el caso del control ErrorProvider, muestra un icono de error junto al control relevante. Cuando el usuario coloca el mouse sobre el icono de error, aparece una pista, que muestra una cadena del mensaje de error.

Se puede encontrar el componente ErrorProvider en la pestaña Windows Forms de la Caja de herramientas. En la ventana Propiedades, descubrirá que una vez que agrega un control ErrorProvider a su formulario, cada control tiene una propiedad nueva llamada Error en x, donde x es el nombre del error ErrorProvider. Puede establecer esta propiedad a un valor durante el tiempo de diseño en la ventana Propiedades. Si se configura un valor para el error, el control mostrará inmediatamente un error durante el tiempo de ejecución.

Vea más acerca del componente ErrorProvider

Las diferentes propiedades del componente ErrorProvider afectan cómo aparece la información para el usuario. La propiedad Icono controla el icono que aparece junto al control. Tal vez desee tener varios proveedores de errores en un solo formulario —uno que reporte errores y uno que reporte alertas. Podrá utilizar diferentes iconos para que cada uno proporcione colas visuales para el usuario. Otra propiedad es la propiedad BlinkStyle. Esta propiedad determina si parpadea o no un icono de error al momento de aparecer. La propiedad BlinkRate determina qué tan rápido parpadea el icono. El siguiente código muestra la manera más sencilla de usar este componente.

 

VB .NET

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _
    System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
    If Me.TextBox1.Text.Length = 0 Then
        ErrorProvider1.SetError(Me.TextBox1, "Debe tener un valor")
    Else
        ErrorProvider1.SetError(Me.TextBox1, "")
    End If
End Sub

C# .NET

private void textBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    if (this.textBox1.Text.Length == 0) 
    errorProvider1.SetError(this.textBox1,"Debe tener un valor"); 
    else 
    errorProvider1.SetError(this.textBox1,""); 
} 
…
 

Bueno, si no entendistes muy bien, pues no hay problema porque a continuación te explicó paso por paso usando un ejemplo algo más completo. Se trata de validar el ingreso de datos en un Control TextBox, donde tan solo puede ingresar números, de no ser así, habrá ocurrido un error.... y luego el componente ErrorProvider comenzará a mostrarte un icono parpadeante alertando que es lo que ha sucedido y cual fue el error. Un aspecto imprtante a tener en cuenta es que toda la programación se ha llevado acabo haciendo uso de los eventos Validating y Validate del Control TextBox.

Este será la interfaz del ejemplo:

luego de ingresar los datos correctos:

y este es el código en vb .net

 

'El evento Validating ocurre cuando el enfoque está a punto de perder el enfoque..
'por lo menos asi lo entiendo mejor ok..?
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As _
System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
    Me.Label1.AutoSize = True
    If Not IsNumeric(Me.TextBox1.Text) Then
        'esto viene la frecuencia con la que parpadeará el ErrorProvider1
        Me.ErrorProvider1.BlinkRate = 200
        'establecemos la propiedad BlinkStyle= ErrorBlinkStyle.AlwaysBlink,
        'para que siempre esté parpadeando cuando mientras no se corrija el error.
        Me.ErrorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink
        Me.ErrorProvider1.SetError(TextBox1, "no es correcto el dato ingresado")
        'con esto hacemos que el control TextBox no pierda el enfoque por el momento...
        e.Cancel = True
    Else
        Me.Label1.Text = "Todo es correcto!"
    End If
End Sub

'Este ocurrirá cuando el control TextBox1 haya sido validado..
'en otras palabras.... este evento ocurrirá cuando el control haya 
'perdido el enfoque...no olvides que el control Textbox '
habrá perdido enfoque si es que es válido el dato ingresado
Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles TextBox1.Validated
    Me.Label2.Text = "validado"
End Sub

'Este evento ocurre cuando estamos modifiacando el contenido del control TextBox
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles TextBox1.TextChanged
    Me.ErrorProvider1.SetError(Me.TextBox1, "")
    Me.Label1.Text = ""
End Sub

Hemos llegado al final.

Referencias:

Control de Excepciones .NET

http://www.elguille.info/colabora/NET2005/Percynet_ControlExceptionsNet.htm

 

No olvides de darme tu voto en PanoramaBox, de esta manera seguiré compartiendo contigo lo que voy aprendiendo. Gracias.


Espacios de nombres usados en el código de este artículo:

System.Windows.Forms.ErrorProvider


Arbis Percy Reyes Paredes es peruano, tiene 21 años y se dedica a la construcción de software de manera profesional, joven desarrollador de aplicaciones Web y Servicios Web XML en VB .NET y C# .NET con bases de datos SQL Server 2000, aplicaciones basadas en Windows con VB .NET y C# .NET, VB 6.0, y controles y bibliotecas ActiveX; actualmente estudia en la Universidad Nacional de Trujillo, la carrera de Ingeniería de Sistemas. Le encanta el desarrollo de aplicaciones para dispositivos móviles y se está especializando en programación gráfica y programación avanzada de Videojuegos.


ir al índice

Fichero con el código de ejemplo: Percynet_ErrorProvider.zip - Tamaño 8.11 KB