Foros del Web » Programación para mayores de 30 ;) » .NET »

Eliminar Filas seleccionadas de un Datagridview

Estas en el tema de Eliminar Filas seleccionadas de un Datagridview en el foro de .NET en Foros del Web. Buenas tardes compañeros mi inquietud es la siguiente: Tengo un DataGridview con una columna Tipo CheckBox, para marcar determinadas columnas y poderlas borrar del objeto, ...
  #1 (permalink)  
Antiguo 12/05/2009, 15:11
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Eliminar Filas seleccionadas de un Datagridview

Buenas tardes compañeros mi inquietud es la siguiente:
Tengo un DataGridview con una columna Tipo CheckBox, para marcar determinadas columnas y poderlas borrar del objeto, el código que utilizo para este procedimiento es el siguiente:
Código vb:
Ver original
  1. 'Recorrer y borrar filas seleccionadas
  2. For Each Row As DataGridViewRow In dgfacturas.Rows
  3.       If Row.Cells(1).Value <> vbNullString Then
  4.          If Row.Cells(12).Value = "M" Then
  5.             If Convert.ToBoolean(Row.Cells(0).Value) Then
  6.                 Me.dgfacturas.Rows.Remove(Row)
  7.             End If
  8.           End If
  9.        End
  10. Next
lo que hago es validar que una de mis columnas tenga estado "M" para proceder a eliminarla, el problema es el siguiente yo marco por ejemplo 5 o 6 filas para eliminar y siempre me deja de esas filas 1 o 2 sin eliminar aunque esten marcadas en el checkbox, a que se puede deber esto????

Agradesco de antemano sus comentarios al respecto.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #2 (permalink)  
Antiguo 12/05/2009, 15:36
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Eliminar Filas seleccionadas de un Datagridview

El error puede suceder q el cambio no ocurre hasta q hayas seleccionado otra celda o otro check
digamos yo selecciono una fila esta va a estar en false y la chekeo entonces todavia va a estar false hasta q seleccione otra celda en la grilla y asi al reves

para esto prueba realizando lo siguiente
Código vb:
Ver original
  1. Private Sub dgfacturas_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgfacturas.CellContentClick
  2.         If e.RowIndex < 0 Or Not e.ColumnIndex = 0 Then Exit Sub
  3.         If Convert.ToBoolean(dgfacturas.Rows(e.RowIndex).Cells(0).Value) Then
  4.             dgfacturas.Rows(e.RowIndex).Cells(0).Value = False
  5.         Else
  6.             dgfacturas.Rows(e.RowIndex).Cells(0).Value = True
  7.         End If
  8.     End Sub

esto es para q cuando seleccione el check de la grilla utomaticamente cambie su valor ala accion q realize chekeado o deschekeado
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 12/05/2009, 16:30
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Muchas Gracias Dradi7 por la respuesta ,segui tu código, pero aun no me elimina todas las filas que chequeo me deja 1 o 2 sin eliminar




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #4 (permalink)  
Antiguo 12/05/2009, 16:36
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Eliminar Filas seleccionadas de un Datagridview

una pregunta has verificado q las filas seleccionadas tenga el valor "M"
y una pregunta mas q te devuelve el valor Row.Cells(1).Value <> vbNullString
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 12/05/2009, 16:44
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Si claro las filas seleccionadas tienen el valor "M", y lo segundo es porque en esa celda del grid tengo un numero de orden y pues lo hago para que no tome la ultima fila del grid que no tendría nada.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #6 (permalink)  
Antiguo 12/05/2009, 17:19
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Yo creo que en teoría estaría todo bien, según tu código y el que te paso el amigo. Yo lo que haría es poner un punto de interrupción en la linea 2 donde inicia el For each y anda siguiendo y viendo que está pasando y viendo porque IF entra y por cuales no, eso te va ayudar a refinar aun más donde puede estar el problemita
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #7 (permalink)  
Antiguo 13/05/2009, 06:50
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Que tal compañeros hice lo que me recomendaron el grid tenia 10 filas de las cuales 5 tenian el estado "M", hice el punto de interrupcion y solo elimino 3 de las 5 con estado "M", vi que cuando termino de eliminar la 3 se salio del Bucle For sin mas ni menos, a que se podrá deber el inconveniente?????

Una vez mas gracias por sus comentarios.




Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #8 (permalink)  
Antiguo 13/05/2009, 08:11
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Parece q el compilador esta interpretando q al eliminar dichas filas y recorrerlas con el for each recorre a dicha fila y como ve q no lo encuentra entonces corta el for each
puedes tratar de usar un for normal mira
Código vb:
Ver original
  1. For Row As Integer = Me.dgfacturas.Rows.Count - 2 To 0 Step -1
  2.             If Me.dgfacturas.Rows(Row).Cells(12).Value = "M" Then
  3.                 If Convert.ToBoolean(Me.dgfacturas.Rows(Row).Cells(0).Value) Then
  4.                     Me.dgfacturas.Rows.RemoveAt(Row)
  5.                 End If
  6.             End If
  7.         Next

al poner Me.dgfacturas.Rows.Count - 2 no me recorreria la ultima fila q esta para el agregado reduciendo un poco tu codigo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 13/05/2009, 10:28
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Eliminar Filas seleccionadas de un Datagridview

Muchas Gracias Dradi7 funcionó a la perfección



Saludos
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:21.