SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: stevejobs en Lunes 16 de Junio de 2008, 03:27
-
Hola
Deseo saber como eliminar varios registros a la vez de un msflexgrid, pero seleccionando con el teclado o con el cursor del mouse un rango de registros del msflexgrid y pulsar un boton y borrar la seleccion en tiempo de ejecucion, no de base de datos.
Pasos:
1. Tengo un msflexgrid con varios registros y n columnas (no importa el numero de columnas)
2. Supongamos que el msf tiene 10 registros y quiero eliminar del registro numero 3 al 6.
3. Asi que en mi aplicacion quiero sombrear con el cursor del mouse o con las teclas del teclado del 3er registro al 6to.
4. Una vez sombreados o seleccionados con el cursor procedo a presionar un boton o pulsar la tecla Delete del teclado y eliminar esos registros seleccionados a la vez. Esa accion es la que necesito (eliminar varios registros a la vez, dependiendo de la seleccion que haga con el teclado o el mouse y automaticamente se elimine ese rango de registros.)
Haber si me pueden ayudar.
Gracias
-
En este codigo el msflexgrid se llama "Grid" [es para simplificar el codigo] y tiene una fila fija [fixedRows=1].
Private Sub Grid_KeyDown(KeyCode As Integer, Shift As Integer)
With Grid
If KeyCode = 46 Then 'supr
If .Rows = 1 Then Exit Sub 'si es la fila fija la seleccionada no hacer nada
If .Rows = 2 Then 'si son 2 filas eliminamos la 1
.Rows = 1
Exit Sub
End If
'checamos si hay varios seleccionados
'sacamos la primera y ultima fila para eliminarlas
If .Row < .RowSel Then
mx = .RowSel
mn = .Row
Else
mx = .Row
mn = .RowSel
End If
For S = mn To mx
If .Rows > 2 Then
.RemoveItem (mn)
Else
.Rows = 1
End If
Next
End If
End With
End Sub
Ojala te sirva de algo... :)