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... :)