none
Ayuda ErrorProvider, Visual Studio RRS feed

  • Pregunta

  • namespace PyR
    {
        public partial class Form2 : Form
        {
            private Control txt_primer;

            public Form2()
            {
                InitializeComponent();
            }

            private void Button1_Click(object sender, EventArgs e)
            {
                ValidarCampos();
            }

            private bool ValidarCampos()
            {
                bool ok = true;

                              ↓ aqui
                if (txt_primer.Text == "") ;
                {
                    ok = false;                          ↓aqui
                    errorProvider1.SetError(txt_primer, "Responde la pregunta");
                }

                return ok;
            }

            private void PictureBox13_Click(object sender, EventArgs e)
            {

            }
        }
    }

    En ambos textBox me salta error con el errorProvider1.SetError.

                           
    • Editado AlexxVeras miércoles, 10 de julio de 2019 12:46
    miércoles, 10 de julio de 2019 12:28

Respuestas

  • Hola @AlexxVeras

    Reproduciendo tu código debes hacer algo como esto:

    private void Button1_Click(object sender, EventArgs e)
            {
                if (ValidarCampos())
                {
                    errorProvider1.Clear();
                }
    
            }
    
            private bool ValidarCampos()
            {
                bool noError = true;
    
                if (string.IsNullOrEmpty(textBox1.Text))
                {
                    errorProvider1.SetError(textBox1, "Ingrese datos");
                    noError = false;
                }
                
                return noError;
    
            }

    Para leer el mensaje debes poner el mouse encima del icono del error.

    Espero te sea de utilidad, cualquier duda no dudes en comentarlo.

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Marcado como respuesta AlexxVeras miércoles, 10 de julio de 2019 16:02
    miércoles, 10 de julio de 2019 15:25

Todas las respuestas

  • Sobra un punto y coma al final de esta linea:

    if (txt_primer.Text == "") ;

    Si el problema no es ese, no digas "me salta error", describenos el error exacto, completo y detallado.

    miércoles, 10 de julio de 2019 12:31
    Moderador
  • System.ArgumentNullException: 'El valor no puede ser nulo.
    Nombre del parámetro: control'

    ok = false;                          ↓aqui
                    errorProvider1.SetError(txt_primer, "Responde la pregunta");
                }

                return ok;
            

    miércoles, 10 de julio de 2019 12:53
  • Bien, un ArgumentNullException en esa linea indica que txt_primer es null. Tienes que buscar dónde está definida esa variable, cómo se inicializa, y cómo la estás haciendo llegar hasta ahí, porque en algún punto hay un error y está llegando vacía.


    Si el código es justo el que pusiste en el primer mensaje (y no se trata de una versión abreviada), entonces el problema es que txt_primer es una variable de tipo Control declarada al principio, y nunca le asignas ningún valor. Para que funcione el errorProvider, la variable tiene que representar un control de verdad, que exista sobre la pantalla.
    miércoles, 10 de julio de 2019 15:20
    Moderador
  • Hola @AlexxVeras

    Reproduciendo tu código debes hacer algo como esto:

    private void Button1_Click(object sender, EventArgs e)
            {
                if (ValidarCampos())
                {
                    errorProvider1.Clear();
                }
    
            }
    
            private bool ValidarCampos()
            {
                bool noError = true;
    
                if (string.IsNullOrEmpty(textBox1.Text))
                {
                    errorProvider1.SetError(textBox1, "Ingrese datos");
                    noError = false;
                }
                
                return noError;
    
            }

    Para leer el mensaje debes poner el mouse encima del icono del error.

    Espero te sea de utilidad, cualquier duda no dudes en comentarlo.

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Marcado como respuesta AlexxVeras miércoles, 10 de julio de 2019 16:02
    miércoles, 10 de julio de 2019 15:25