Visual Basic - con el flexGrid

Life is soft - evento anual de software empresarial
 
Vista:

con el flexGrid

Publicado por Carlos (14 intervenciones) el 31/05/2005 00:05:03
amigos buen dia, de antemano gracias. Tengo que modificar unos datos un msFlexGrid, pero esto es un poco incòmodo para el usuario. YO he visto que se puede meter un textbox dentro del grid, para que donde el usuario escriba, lo haga sobre el textbox. Si tiene alguien idea de còmo se hace me cuentan porfa.
saludos.
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:con el flexGrid

Publicado por blacky_dy (32 intervenciones) el 31/05/2005 00:39:52
la idea es super simple.

Solo dibujas un textbox oculto, y cada vez que el usuario de click en una celda especifica lo velves visible y le das el mismo alto, ancho, largo y lo ubicas en la celda en que se dio el click. Luego cada vez que el texto pierde el foco traspasas el valor a la grid y lo vuelves a ocultar .
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:con el flexGrid

Publicado por Carlos (14 intervenciones) el 31/05/2005 01:11:43
gracias.
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:con el flexGrid

Publicado por SetFocus (183 intervenciones) el 31/05/2005 01:22:47
Hola! te mando un ejemplo, para probarlo en un form agrega un msflexgrid y dos textbox sin cambiarle los nombres por defecto, luego copia el codigo que te paso. Probalo y me decis.Saludos

Option Explicit

Private Sub Form_Load()
' Ocultar los textbox
Text1.Visible = False
Text1.BorderStyle = 0 'None
Text2.Visible = False
Text2.BorderStyle = 0 'None
'Configurar el Grid para el ejemplo
With MSFlexGrid1
.Cols = 4
.Rows = 11
.TextMatrix(0, 2) = "Valores 1"
.TextMatrix(0, 3) = "Valores 2"
End With

End Sub

Private Sub MSFlexGrid1_GotFocus()

Text1.Visible = False
Text2.Visible = False

End Sub

Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)

With MSFlexGrid1
Select Case .ColSel
Case 2
Text2.Visible = False
Text1.Move .Left + .CellLeft, .Top + .CellTop, .CellWidth - 8, .CellHeight - 8
Text1.Visible = True
If .TextMatrix(.RowSel, .ColSel) <> "" Then
Text1.Text = .TextMatrix(.RowSel, .ColSel)
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Else
Text1.Text = Chr(KeyAscii)
Text1.SelStart = 1
End If
Text1.SetFocus
Case 3
Text1.Visible = False
Text2.Move .Left + .CellLeft, .Top + .CellTop, .CellWidth - 8, .CellHeight - 8
Text2.Visible = True
If .TextMatrix(.RowSel, .ColSel) <> "" Then
Text2.Text = .TextMatrix(.RowSel, .ColSel)
Text2.SelStart = 0
Text2.SelLength = Len(Text2.Text)
Else
Text2.Text = Chr(KeyAscii)
Text2.SelStart = 1
End If
Text2.SetFocus
End Select
End With

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then
With MSFlexGrid1
.TextMatrix(.RowSel, 2) = Text1.Text
.SetFocus
End With
KeyAscii = 0
End If

If KeyAscii = vbKeyEscape Then
MSFlexGrid1.SetFocus
KeyAscii = 0
End If

End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then
With MSFlexGrid1
.TextMatrix(.RowSel, 3) = Text2.Text
.SetFocus
End With
KeyAscii = 0
End If

If KeyAscii = vbKeyEscape Then
MSFlexGrid1.SetFocus
KeyAscii = 0
End If

End Sub
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

Gracias SetFocus

Publicado por Carlos (14 intervenciones) el 31/05/2005 01:40:50
estoy probando el còdigo que me enviaste.
No sè muy bien còmo usarlo para escribir en el grid como si fuera el textbox, pero seguirè probando. gracias otra vez.
saludos.
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:Gracias SetFocus

Publicado por SetFocus (183 intervenciones) el 31/05/2005 01:48:02
En el grid desplazate con las flechas y cuando estes en alguna celda de las columnas "Valores1" o "valores2" tipea algo y vas a ver que te habilita el textbox correspondiente y al dar enter graba el valor del textbox en la celda. Saludos.
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:Gracias SetFocus

Publicado por Carlos (14 intervenciones) el 31/05/2005 01:50:03
perfecto, es justo lo que necesito. gracias por tu tiempo.
saludos.
Desde Guatemala.
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:Gracias SetFocus

Publicado por SetFocus (183 intervenciones) el 31/05/2005 01:53:40
De nada. Desde Buenos Aires ARGENTINA. =)
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