Visual Basic - Recorrer Datagrid y borrar filas con misma ID

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 40
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por fran (16 intervenciones) el 15/11/2020 19:50:09
Buenas, os pongo en situación: Tengo 2 Datagrid

Dgvseleccionado (Contiene Checkbox)

DgvLineas(añade los datos de la fila donde seleccionamos el checkbox)

Cuando marco el checkbox me añade la fila en el 2 datagrid, cuando desmarco me la borra.

El problema viene cuando marco muy rápido y desmarco, que me añade mas de 1 vez la linea , y al demarcarla no de la elimina todas

1
2
3
4
5
6
7
8
9
10
11
12
13
Dim id_check_quitado As Integer
id_check_quitado = dgvSeleccionado.Item(1, e.RowIndex).Value() ' aquí meto la ID de la fila en la cual Desmarco el check.
 
 
For Each row As DataGridViewRow In dgvlineas.Rows ' recorro todo el 2dgv  y cuando encuentro la ID que coincide con la guardada en la variable, elimino su fila.
 
    If row.Cells("ID").Value = id_check_quitado Then
 
        dgvlineas.Rows.Remove(row)
 
 
    End If
Next

Adjunto una Imagen y un Gif


error

También me valdría que no me dejara marcar y desmarcar tan rapido, pero creo que la opcion de que compruebe todas las Filas y elimina TODAS las que contengan la misma ID es mas viable, pero no tengo narices de hacerlo
Gif
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por Andres Leonardo (1798 intervenciones) el 16/11/2020 14:53:53
en ese datagrid puedes deshabilitar ese check hasta que haga lo que debe hacer?

Algo asi...

1
2
3
4
5
6
7
--Esto es un ejemplo
procesodondehagochech_datagridview()
     check.enable = false
         proceso de agregar o quitar del data grid.
          linea 2 , ,etec retc
      check.enable=true
fin procesodondehagocheck.

asi no puedes marcar o desmarcar hasta que te haya eliminado o agregado al grid 2 si no puedes con el check intenta deshabilitando todo el dataviewgrid y mira si ese efecto funciona correcto.

Espero esto te ayude.

Pd disculpa estaba en el celular por eso codifico asi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 40
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por fran (16 intervenciones) el 16/11/2020 22:04:37
El problema es que en el ejemplo solo hay un check, pero puede haber mas de uno, entonces si por un casual me equivocara marcando un check, ya no me dejaría quitarlo.

Esa opción la tenia en mente como ultimo recurso, poniendo que los checks no se puedan quitar, y que haya que darle a un botón para volver a reiniciar el proceso por si hubiera una equivocación, tipo cancelar.

Pero quería barajar otras posibilidades por no fastidiar al usuario, imagina que marca 9 checks y en 1 se equivoco, ya no podría quitarlo, y al darle a cancelar, tendría que volver a marcar todos los checks nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por Andres Leonardo (1798 intervenciones) el 16/11/2020 23:03:01
No digo que lo quites digo que lo deshabilites , es decir no se pueda marcar o desmarcar hasta que termine de poner o quitar el registro en el otro grid, no vas a hacer lo que dices solo debes controlarlo y volver a habilñitarlo cuando termines es un efecto que el usuario vera y tranquilamente podrias hacer esto


no se si interpretras lo que te digo solo es lo dura mientras pones o quitas el registro en el grid 2 luego lo dejas tal cual, asi el funcionamiento es el m,ismo

es como cuando deshabilitas un boton para que no se envie dos veces a grabar un registro ,.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 40
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por fran (16 intervenciones) el 17/11/2020 14:28:07
Vale ya entiendo, voy a probarlo y te comento que tal me fue.
Muchas gracias a ver que tal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 40
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por fran (16 intervenciones) el 22/11/2020 12:42:17
Bueno al final lo hice de otro modo por que no me estaba convenciendo el 1º modo.

EN vez de marcar el check del 1 datagrid y pasarlo al 2.

Pongo un botón que es el que recorre el 1º datagrid y todos los checks marcados los pasa al 2 datagrid, con eso lo he solucionado.

El intentar evitar 1 botón me estaba dando demasiados problemas jeje.

Muchas gracias por los consejos y ayuda.Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Recorrer Datagrid y borrar filas con misma ID

Publicado por edith (1 intervención) el 14/11/2022 19:21:40
lo que necesito sabes es como posicionarme en la Utima fila ingresada al borrar una fila con delete
si tengo xej 10 filas cargadas, voy a la 4 la borro , luego me queda el cursor en esa fila y necesito que vaya a la 10 para seguir cargando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 40
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Recorrer Datagrid y borrar filas con misma ID

Publicado por fran (16 intervenciones) el 14/11/2022 21:28:18
Así es uno de los modos en los que yo lo hago.

'COLOCARSE EN LA ULTIMA FILA DEL DATAGRID. -2 SERIA SI LA ULTIMA FILA ES UNA PARA AÑADIR A MANO BLANCA.

1
2
3
Me.DGVenta.ClearSelection()
 Me.DGVenta.CurrentCell = Me.DGVenta.Rows(Me.DGVenta.RowCount - 1).Cells(0)
       Me.DGVenta.Refresh()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar