Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/09/2008, 09:41
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Dudas con Data grid

Cita:
Iniciado por pabje Ver Mensaje
Hola Avellaneda

Con algunos de estos controles MSFlexGrid o MSHFlexGrid ¿ yo puedo crear una matriz dinamica de ingresos de datos?

En otras palabras una matriz que permita variar(incrementar) el numero de filas a medidia que yo ingreso los datos, ya que los datos que ingresos en esta matriz son variables y no fijos.
Hola pabje,

Claro que se puede, controlando como te dije los eventos KeyPress y KeyDown del Grid.

Te pongo un ejemplo que creo que ya he expuesto alguna vez aquí:

Código:
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
With MSFlexGrid1
    Select Case KeyAscii
    Case 32 To 127
        ' solo se admiten caracteres imprimibles
        .Text = .Text & Chr(KeyAscii)
    End Select
End With
End Sub

Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
    Select Case KeyCode
    Case vbKeyDelete    ' Tecla [Supr] borramos toda la celda
        .Text = ""
    Case vbKeyBack      ' Tecla [Retroceso] borramos el último caracter
        If Len(.Text) > 0 Then
            .Text = Left(.Text, Len(.Text) - 1)
        End If
    Case vbKeyTab, vbKeyReturn   ' Teclas [Tab] o [Enter]
        If .Col = .Cols - 1 Then
            ' si es la última columna pasamos al principio de la siguiente fila
            If .Row = .Rows - 1 Then
                ' es la última fila añadimos una nueva
                .Rows = .Rows + 1
                .TopRow = .Row
            End If
            .Row = .Row + 1
            .Col = 0
            .LeftCol = 1
            ' si no está visible
            If .Row < .Rows - 1 Then
                If .RowIsVisible(.Row + 1) = False Then .TopRow = .Row
            End If
        Else
            .Col = .Col + 1
        End If
    End Select
End With
End Sub
Como podrás comprobar, combinando los caracteres pulsados, puedes hacer casi de todo.

Después con otros eventos como EnterCell y LeaveCell puedes hacer mas vistosas la entrada de datos.