Visual Basic - Escribir en un MsFlexGrid urgente

Life is soft - evento anual de software empresarial
 
Vista:

Escribir en un MsFlexGrid urgente

Publicado por txetxo (88 intervenciones) el 05/08/2003 17:04:15
Hola

Tengo un MsFlexGrid, sobre el que voy añadiendo datos, pero quisieria hacerlo directamente, escribiendo sobre las celdas del MsFlexGrid.
¿Esto es posible? ¿Como?

Gracias
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

RE:Escribir en un MsFlexGrid urgente

Publicado por JorgeChasis (88 intervenciones) el 05/08/2003 18:03:44
No es posible. Prueba con el control Datagrid, aunque es mas sencillo, esto se puede hacer. Venga suerte.
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

RE:Escribir en un MsFlexGrid urgente

Publicado por Juan (284 intervenciones) el 05/08/2003 18:32:37
Siento contradecir al bueno de Jorge Chasis pero si es posible,Lo que hay que hacer es
poner un textBox flotando por encima de la celda a editar. Si me dejas un poco de tiempo
te escribo un código fuente en otro mensaje.
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

El código

Publicado por Juan (284 intervenciones) el 05/08/2003 18:53:47
Private Sub msfG_EnterCell()
colocaText
End Sub
Private Sub txtEditaCelda_Change()
msfG.Text = txtEditaCelda.Text
End Sub
Private Sub txtEditaCelda_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
If msfG.Row = 1 Then
msfG.Row = msfG.Rows - 1
Else
msfG.Row = msfG.Row - 1
End If
Case vbKeyDown
If msfG.Row = msfG.Rows - 1 Then
msfG.Row = 1
Else
msfG.Row = msfG.Row + 1
End If
Case vbKeyLeft
If txtEditaCelda.SelStart = 0 Then
If msfG.Col = 1 Then
msfG.Col = msfG.Cols - 1
Else
msfG.Col = msfG.Col - 1
End If
End If
Case vbKeyRight
If txtEditaCelda.SelStart = Len(txtEditaCelda.Text) Then
If msfG.Col = msfG.Cols - 1 Then
msfG.Col = 1
Else
msfG.Col = msfG.Col + 1
End If
End If
End Select
End Sub
' Coloca el textBox sobre la celda actual
Private Sub colocaText()
With txtEditaCelda
.Move msfG.CellLeft + msfG.Left, msfG.CellTop + msfG.Top, msfG.CellWidth, msfG.CellHeight
.Visible = True
.ZOrder 0
.Text = msfG.Text
.SetFocus
.SelStart = Len(txtEditaCelda.Text)
End With
End Sub

Pon este código en el módulo del formulario. Además a%
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

Comentario del código

Publicado por Juan (284 intervenciones) el 05/08/2003 19:13:35
Faltaba un comentario que se cortó en el anterior mensaje. Para que funcione el código
debes insertar un control textbox con la propiedad border=none y visible=False.
En mi código el MsFlexGrid se llama msfG, cámbialo por el nombre del tuyo.
Espero que te aproveche. Adios
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