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, "");
        }

2 comentarios:

  1. hola buen dia... como podria mandar una senal de error en C#, cuando hay un valor especifico en el textbox.. ejemplo si en el texboxt aparece el numero 30,45, como hacer una funcion para que en ese momento salga el icon de error.. gracias por tu ayuda

    ResponderBorrar
  2. Podrias hacer

    If CDbl(txt1.Text) = 30.45
    errorProvider1.SetError(txt1, "El número ingresado es incorrecto")
    End If

    Saludos

    ResponderBorrar