martes, 6 de diciembre de 2011

WinForms - ErrorProvider

Introducción:
ErrorProvider es una herramienta que nos permite indicar al usuario la existencia de algún error asociado a un control determinado.



Implementación


  1. Agregamos la herramienta a nuestro formulario.
  2. Modificamos las propiedades que creamos convenientes, unas de las más importantes son las siguientes.
    • ErrorProvider1.BlinkRate: la velocidad con la que parpadea el icono que indica el error.
    • ErrorProvider1.BlinkStyle: establece si el icono parpadea o no.
    • ErrorProvider1.Icon: permite seleccionar el icono que se quiere mostrar el establecer un error.
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Configuro el ErrorProvider, ustedes pueden hacerlo en tiempo de diseño.
            ErrorProvider1.BlinkRate = 0
            ErrorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink
            ErrorProvider1.Icon = New Icon(Application.StartupPath & "\errorProvider_16x16.ico")
        End Sub
    
  3. Hacemos la validación y establecemos un error a través del método SetError.
        Private Sub ButtonValidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValidar.Click
            If TextBox1.Text = Nothing Then
                'Establesco un nuevo error
                ErrorProvider1.SetError(TextBox1, "Debe completar el campo.")
            Else
                'Oculto el error
                ErrorProvider1.SetError(TextBox1, Nothing)
            End If
        End Sub
    
Eso es todo, un detalle muy agradable a la vista.

Código Fuente

VB.NET
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Configuro el ErrorProvider, ustedes pueden hacerlo en tiempo de diseño.
        ErrorProvider1.BlinkRate = 0
        ErrorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink
        ErrorProvider1.Icon = New Icon(Application.StartupPath & "\errorProvider_16x16.ico")
    End Sub

Private Sub ButtonValidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValidar.Click
        If TextBox1.Text = Nothing Then
            'Establesco un nuevo error
            ErrorProvider1.SetError(TextBox1, "Debe completar el campo.")
        Else
            'Oculto el error
            ErrorProvider1.SetError(TextBox1, Nothing)
        End If
    End Sub


C#.NET
        public Form1()
        {
            InitializeComponent();
            //Configuro el ErrorProvider, ustedes pueden hacerlo en tiempo de diseño.
            errorProvider1.BlinkRate = 0;
            errorProvider1.BlinkStyle = ErrorBlinkStyle.NeverBlink;
            errorProvider1.Icon = new Icon(Application.StartupPath + "\\errorProvider_16x16.ico");
        }

        private void buttonValidar_Click(object sender, EventArgs e)
        {
            if(textBox1.Text == "")
                //Establesco un nuevo error
                errorProvider1.SetError(textBox1, "Debe completar el campo.");
            else
                //Oculto el error
                errorProvider1.SetError(textBox1, "");
        }