SELECIONAR LINHA INTEIRA COM BOTAO DIREITO FLEXGRI

ADILSOO 28/04/2017 17:14:19
#473640
Boa tarde Pessoal!
Depois de pesquisar tanto, não encontrei o que eu queria, ou pelo menos não tudo o que queria, quero selecionar a linha inteira com o botão direito do mouse, quanto clico com o esquerdo, blz, mas quando clico com o direito, não da.

With gridcadpreparo
.Col = .MouseCol
.Row = .MouseRow
If Button = 2 Then
PopupMenu mnuopcoes, , .Left + x, .Top + y
End If
End With


Esse foi o código que consegui, porém, seleciona apenas a linha e coluna que eu clico, e eu preciso que selecione a linha que eu cliquei com o direito inteira.
Alguém pode me ajudar?

Desde já, obrigado!
ADILSOO 30/04/2017 18:18:25
#473659
Boa noite JABA!
Na verdade, eu preciso que seja selecionada a linha do MSFLEXGRID quando o usuário clicar com o botão direito, pois a partir da linha selecionada, ele pega os dados para realizar as operações de Alteração, Exclusão entre outros, que aparecerá no menu popup. Preciso disso pois já tem usuário clicando com o botão direito em uma área em branco, não se atentando que existe outra linha selecionada e excluindo registro errado.
Caso alguém souber...
Obrigado pela ajuda.
Abraço!!!
JABA 30/04/2017 20:05:53
#473660
Coloque o seu código dentro do evento MouseDown e dê um foco no controle:

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

With gridcadpreparo
.Col = .MouseCol
.Row = .MouseRow
[txt-color=#e80000].SetFocus[/txt-color]

If Button = 2 Then
PopupMenu mnuopcoes, , .Left + x, .Top + y
End If
End With

End Sub
ADILSOO 01/05/2017 22:52:02
#473674
Boa noite JABA!
Então, nesse caso já tinha pensado nisso, o problema é que ele não seleciona a linha inteira, somente a célula em questão.
JABA 01/05/2017 23:38:58
#473676
Teste colocando SelectionMode=1 para o seu FlexGrid.

SelectionMode - Define como o usuário pode selecionar as células no grid.O valor padrão (0) permite a seleção das células individualmente, o valor de SelectionMode=1 , força a seleção da linha inteira, se a propriedade for definida com o valor 2 , a seleção será por coluna inteira.
ADILSOO 01/05/2017 23:40:39
#473677
Já está, porém funciona somente quanto clico com o esquerdo.
JABA 01/05/2017 23:41:40
#473678
E configurando o FillStyle, como fica?

FillStyle - Define se a definição de um valor de uma propriedade de uma célula irá afetar somente a célula atual ou as células selecionadas. O valor padrão é 0 - flexFillSingle e permite configurar somente a célula atual.. Alterando o valor de FillStyle para 1 - flexFillRepeat faz com que a definição da propriedade de uma célula valha para todas as células selecionadas.
JABA 01/05/2017 23:48:20
#473679
Resposta escolhida
Private Sub Form_Load()
With FGrid1
.FocusRect = flexFocusNone
End With
End Sub


Private Sub FGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbRightButton Then
With FGrid1
.Row = .MouseRow
.Col = .MouseCol
[txt-color=#e80000] .RowSel = .MouseRow
.ColSel = .MouseCol[/txt-color]
[txt-color=#e80000].HighLight = flexHighlightAlways[/txt-color]

PopupMenu mnuopcoes, , .Left + x, .Top + y

End With
End If
End Sub

ADILSOO 02/05/2017 00:07:18
#473681
Ufa,
Finalmente consegui, pra alguém que tenha a necessidade de realizar esse tipo de função, segue o código abaixo, obrigado pela ajuda JABA, até a próxima.
Abraços!

With gridcadpreparo
.ScrollBars = 3
.Highlight = 1
.FocusRect = 0
.MousePointer = 0
.FillStyle = 0
.SelectionMode = 1
.AllowUserResizing = 0

.Row = .MouseRow
.Col = 1 [ô]Qual será a coluna selecionada
.RowSel = .MouseRow
.ColSel = 9 [ô]Quantas colonas será selecionada
.SetFocus

If Button = 2 Then
PopupMenu mnuopcoes, , .Left + x, .Top + y
End If
End With
Tópico encerrado , respostas não são mais permitidas