• Jueves 28 de Marzo de 2024, 20:41

Autor Tema:  [Solucionado] Error en DataGridView  (Leído 2729 veces)

DUBSTER

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
[Solucionado] Error en DataGridView
« en: Viernes 15 de Noviembre de 2013, 02:33 »
0
Hola a todos,

He abierto este tema para ver si pueden ayudarme (ojalá que si).

En una aplicación de ventana (Windows Form) agregué un DataGridView, un TextBox y un Botón, la función de este último es que busque el valor del TextBox en un archivo de texto (*.txt).

Una vez que realiza la búsqueda, si se encontró resultados estos aparecerán en el DataGridView, de lo contrario solo mostrará un MessageBox diciendo que no hubo coincidencias con la búsqueda.

Si se deja vacío el TextBox y se presiona dicho botón de buscar, aparecerá un MessageBox diciendo que debería al menos escribir una palabra a buscar.

Todo el código funciona de maravilla, sin embargo, cuando se presiona el botón Buscar sin haber escrito nada en el TextBox, me aparece el MessageBox pero al pasar el mouse en cualquiera de las celdas del DataGridView me marca el siguiente error:



El código del evento click del botón es el siguiente:

Código: [Seleccionar]
private void btBuscar_Click(object sender, EventArgs e)
        {
            Contact0.contactos.Clear();
            string palabra = tbBuscar.Text;
            string busco = "no";
            if (palabra == "")
            {
                MessageBox.Show("¡Escribe por lo menos una palabra a buscar!");
                return;
            }
            else
            {
                string archivo = Directory.GetCurrentDirectory() + "\\contactos.txt";
                StreamReader sr = new StreamReader(archivo, Encoding.Default);
                string texto;

                while ((texto = sr.ReadLine()) != null)
                {
                    if (texto.ToLower().IndexOf(palabra.ToLower()) != -1)
                    {
                        i = new Contact0();
                        string[] split = texto.Split(new char[] { '~' }, 7);
                        i.Nombre = split[0];
                        i.Domicilio = split[1];
                        i.Contacto = split[2];
                        i.TelCasa = split[3];
                        i.TelOficina = split[4];
                        i.Celular = split[5];
                        i.Correo = split[6];

                        Contact0.contactos.Add(i);

                        split = null;
                        busco = "si";
                    }
                }
                sr.Close();
            }
            if (busco == "si")
            {
                dataGridView1.DataSource = null;
                dataGridView1.DataSource = Contact0.contactos;
            }
            else
                MessageBox.Show("No se encontró ninguna coincidencia con la palabra: " + palabra);
        }
    }

Espero que puedan ayudarme.

Gracias.
« última modificación: Viernes 15 de Noviembre de 2013, 21:38 por DUBSTER »

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:Error en DataGridView
« Respuesta #1 en: Viernes 15 de Noviembre de 2013, 07:58 »
0
A mi parecer, el error esta en el datagrid, que esta vacio y tratas de seleccionar una celda que no tiene nada.

No puedo estar seguro porque no tengo el codigo completo, pero quizas funcione si asignas un valor null al datasource del datagrid cuando dejes el textbox en blanco:

Código: [Seleccionar]
            if (palabra == "")
            {
                MessageBox.Show("¡Escribe por lo menos una palabra a buscar!");
                dataGridView1.DataSource = null;
                return;
            }

Prueba y me dices.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

DUBSTER

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re:Error en DataGridView
« Respuesta #2 en: Viernes 15 de Noviembre de 2013, 21:37 »
0
Muchas gracias, ProfesorX.

Tienes toda la razón.

:D