none
Erro Al Eliminar Una Celda (Data Grid View) RRS feed

  • Pregunta

  • Hola estoy Trabajando en un Control De Registro, Pero Tengo un Problema Al querer Eliminar El Ultimo Registro, Me sale el siguiente error y no entiendo por que retorna Null.

    System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'
    System.Windows.Forms.DataGridViewCell.Value.get devolvió null.

    el Código Encargado de la Eliminación Del Registro Es El siguiente.

    private void btnEliminarA_Click(object sender, EventArgs e)
            {
                if(posicion != -1)
                {
                    AlumnosGrid.Rows.RemoveAt(posicion);
                    eliminarDatoLista();
                    actualizarLista();
                }
            }
    
            private void eliminarDatoLista()
            {
                int CodigoEliminar = Convert.ToInt32(AlumnosGrid.Rows[posicion].Cells[0].Value.ToString());
                container.Alumnos.RemoveAll(x => x.Codigo == CodigoEliminar - 1);
                int n = 1;
                foreach(var nuevaLista in container.Alumnos)
                {
                    nuevaLista.Codigo = n;
                    n++;
                }
            }

    Si alguien puede ayudarme se lo agradecería mucho, No he Podido Avanzar por ese problema

    domingo, 8 de diciembre de 2019 20:00

Respuestas

  • Hola Neoshock

    Es obvio que el problema está en la 1ra linea de eliminarDatoLista()

    Intentas acceder a una celda que no existe o que su valor es null

    Ya veo que lo prevenís a posicion de que sea -1 ... pero podría ser igual o mayor al Count de la lista? (recorda que los indices van desde 0 hasta Count - 1) ... o que por algún motivo esa celda tenga null en Value

    Podrías debuggear para ver qué es lo que ocurre ...

    Saludos 

    Pablo

    domingo, 8 de diciembre de 2019 23:54