MENU POPUP NO MSFLEXGRID

SAMUKA 17/05/2011 09:51:01
#374131
Bom dia Amigos

Estou com dificuldade em implantar o menu Popup no MSFlexGrid.
Sei criar o menu, sei executa-lo qdo clico com o botão direito do mouse

Mas está ocorrendo um problema, qdo eu clico com o direito do mouse, sobre o MSFlexGrid, a celula/linha em questão não aparece selecionada, com isso fico sem referencia para programar o resultado.
KERPLUNK 17/05/2011 12:16:40
#374161
Isso, é bem mais complicado do que parece. O FlexGrid, não reconhece o clique direito como [Ô]clique[Ô] então tem que clicar com o esquerdo primeiro depois com o direito. A menos que vc queira usar umas API doidas ae, é o jeito...
SAMUKA 17/05/2011 12:38:10
#374163
Exatamente, eu seria q simular um click do mouse.
MARCELO.TREZE 17/05/2011 16:41:51
#374179
Veja esta solução já postada no forum.

Private Sub MSFlexgrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
With MSFlexGrid1
.Col = .MouseCol
.Row = .MouseRow
If Button = 2 Then
PopupMenu mnuteste, , .Left + x, .Top + y
.SetFocus
End If
End With
End Sub

SAMUKA 17/05/2011 16:55:25
#374181
Essa solução só funciona qdo a gente clica primeiro com o botão esquerdo e depois com o botão direito do mouse.

A propriedade MouseCol só é setada pelo botão direito do mouse
MARCELO.TREZE 17/05/2011 18:07:34
#374187
olha só eu clico com o botão direito e funciona de primeira, não tem problema nenhum, o que vc gostaria de fazer exatamente?
SAMUKA 18/05/2011 13:44:03
#374275
Gostaria que a linha inteira aparecesse selecionada.

Minha propriedade estão setadas:

AlowBigSelection = True
SelectionMode = flexSelectionByRow

SZBRUUNO 18/05/2011 14:27:10
#374283
Resposta escolhida
Para dar um Highlight na linha inteira você pode fazer isso :

Private Sub Grid_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then

Grid.Row = Grid.MouseRow
Grid.Col = 0
Grid.ColSel = Grid.Cols - 1

Grid.SetFocus

End If
End Sub


SAMUKA 18/05/2011 14:34:10
#374284
Valew SZBRUUNO

Deu certo!
Tópico encerrado , respostas não são mais permitidas