Visual Basic - msflexgrid

Life is soft - evento anual de software empresarial
 
Vista:

msflexgrid

Publicado por sergio (54 intervenciones) el 09/08/2003 16:33:24
hola a todos, lo que quisiera saber si hay alguna forma de que pueda escribir datos en una celda del flexgrid o si hay una forma de colocar un combobox que se active cuando haga click en cualquier celda de una misma columna. gracias de antemano
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:msflexgrid

Publicado por Juan (284 intervenciones) el 09/08/2003 17:21:07
No hace mucho respondí a algo parecido en un foro(puede que fuera este),
en aquella ocasión lo que había que poner no era un combobox sino un
textBox para escribir manualmente en una celda.
Te pondré el código fuente que hice entonces, que creo que te servirá
con algunas modificaciones.
Para verlo funcionar pon en un formulario un control msFlexGrid llamado
msfG y un textBox llamado txtEditaCelda (si quieres otros nombres tendrás
que cambiarlos en el código).

Bueno el código te lo pongo en otro mensaje no se que se corte por falta
de espacio.

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

Código

Publicado por Juan (284 intervenciones) el 09/08/2003 17:23:29
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

P.D.: si no sabes adecuarlo a tus necesidades po
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