El componente ErrorProvider
Fecha: 15/Jun/2005 (11/06/2005)
|
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 SubHemos llegado al final.
Referencias:
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.
Fichero con el código de ejemplo: Percynet_ErrorProvider.zip - Tamaño 8.11 KB