Visual Basic - Ayuda MsFlexGrid, Por favor!!!!

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda MsFlexGrid, Por favor!!!!

Publicado por FER (26 intervenciones) el 02/08/2004 13:45:58
Necesito pinchar con el boton derecho en un MsFlexGrid y que se comporte ese Click como el del boton izquierdo. En el Click con el boton izquierdo las propiedades Row y Col se actualizan tomando los valores de la celda actual, quiero consegur eso con el boton derecho para asociarlo posteriormente a un menu emergente que actuará sobre el registro sobre el que quiero hacer Clik con el boton derecho

Muchas 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:Ayuda MsFlexGrid, Por favor!!!!

Publicado por Semper (74 intervenciones) el 04/08/2004 05:27:50
Para esto lo mas "sencillo" es utilizar los eventos _MouseDown y _MouseUp en combinacion con tus actuales eventos _CLICK y _DOUBLECLICK del MSFlexGrid...

Se requiere una variable adicional para poder controlar mediante ella
que boton es el que se oprimio y asi poder limitar el comportamiento de los eventos _CLICK y _DOUBLECLICK, ya que el boton derecho tambien activa esos eventos, aunque el manual dice que el doble-click se genera solamente con el boton izquierdo... :(


Dim MouseButtonClicked As Long

' ...

Private Sub MSFlexGrid1_Click()

If MouseButtonClicked = vbRightButton Then
Exit Sub
End If

' El boton que provocó el click fue el izquierdo,
' asi que vamos a proceder con lo que necesitemos hacer

' ...

End Sub

Private Sub MSFlexGrid1_DblClick()
If MouseButtonClicked = vbRightButton Then
Exit Sub
End If

' El boton que provocó el doble-click fue el izquierdo,
' asi que vamos a proceder con lo que necesitemos hacer

' ...

End Sub

' .. continua en el sig post
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:Ayuda MsFlexGrid, Por favor!!!!

Publicado por Semper (74 intervenciones) el 04/08/2004 05:31:45
Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim nRowI As Long
Dim nRowF As Long
Dim nColI As Long
Dim nColF As Long


' En este evento solo procesamos lo correspondiente al
' BOTON DERECHO !!! ...

' Si el boton que se libera es el izquierdo salimos del sub
' sin hacer nada mas

If Button = vbLeftButton Then
Exit Sub
End If

' Si no hay multiples celdas seleccionadas

If (Me.MSFlexGrid1.RowSel = Me.MSFlexGrid1.Row And _
Me.MSFlexGrid1.ColSel = Me.MSFlexGrid1.Col) Then

Me.MSFlexGrid1.Row = Me.MSFlexGrid1.MouseRow
Me.MSFlexGrid1.Col = Me.MSFlexGrid1.MouseCol

Else

If Me.MSFlexGrid1.RowSel > Me.MSFlexGrid1.Row Then
nRowI = Me.MSFlexGrid1.Row
nRowF = Me.MSFlexGrid1.RowSel
Else
nRowI = Me.MSFlexGrid1.RowSel
nRowF = Me.MSFlexGrid1.Row
End If

If Me.MSFlexGrid1.ColSel > Me.MSFlexGrid1.Col Then
nColI = Me.MSFlexGrid1.Col
nColF = Me.MSFlexGrid1.ColSel
Else
nColI = Me.MSFlexGrid1.ColSel
nColF = Me.MSFlexGrid1.Col
End If

' continua. ..
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:Ayuda MsFlexGrid, Por favor!!!!

Publicado por Semper (74 intervenciones) el 04/08/2004 05:33:44
' continuacion ...

' Si el boton no se libera dentro del rango de celdas
' seleccionadas, entonces rompemos la seleccion y ponemos
' la celda a la que apunta el mouse como la
' unica celda seleccionada

If Not (Me.MSFlexGrid1.MouseRow >= nRowI And _
Me.MSFlexGrid1.MouseRow <= nRowF And _
Me.MSFlexGrid1.MouseCol >= nColI And _
Me.MSFlexGrid1.MouseCol <= nColF) Then
Me.MSFlexGrid1.Row = Me.MSFlexGrid1.MouseRow
Me.MSFlexGrid1.Col = Me.MSFlexGrid1.MouseCol
Me.MSFlexGrid1.RowSel = Me.MSFlexGrid1.Row
Me.MSFlexGrid1.ColSel = Me.MSFlexGrid1.Col
End If
End If

' Aqui ya podemos proceder a mostrar el Menu Emergente o lo que sea
' que haya que hacer una vez que determinamos que el boton derecho
' activó este evento, y que ya tenemos la celda o la seleccion de
' celdas con la que vamos a trabajar...

PopupMenu menuFile

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

RE:Ayuda MsFlexGrid, Por favor!!!!

Publicado por Semper (74 intervenciones) el 04/08/2004 05:34:37
'.. final ...

Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

' Este evento solo lo utilizamos para capturar que boton se oprime
' y poder limitar que las acciones de los eventos _Click y
' _DoubleClick del MsFlexGrid solo se ejecuten si el boton que se
' oprime es el izquierdo...
' Si el boton que se oprime es el derecho entonces se ejecutara
' lo correspondiente al evento _MouseUp y los eventos _Click y
' _DoubleClick se ignoraran por medio del codigo en dichos eventos

MouseButtonClicked = Button

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