SELECIONAR LINHA INTEIRA COM BOTAO DIREITO FLEXGRI
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.
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!
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!
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!!!
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!!!
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
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.
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.
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.
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.
Já está, porém funciona somente quanto clico com o esquerdo.
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.
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.
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
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!
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