Ir para conteúdo
Fórum Script Brasil
  • 0

Selecionar Item Com O BotÃo Direito?


Guest Luciano Dias Mota

Pergunta

Guest Luciano Dias Mota

Tenho um menu PopUp com algumas opções, entre elas tenho a opção "Filtrar Item Selecionado". Pois bem:

*Quando o Form é carregado o foco vem em uma determinada linha da MsflexGrid certo?

*se eu quiser colocar o foco (selecionar) em outra linha da MsFlexGrid(em run time) tenho que clicar com o botão esquerdo certo?

*acontece que preciso clicar com o botão direito (em qualquer linha da MsFlexGrid) para exibir o menu PopUp com a opção Filtrar Item Selecionado

*Só que quando faço isso o foco(a seleção) está, sei lá onde, e não consigo filtrar aquele item na posição onde o mouse foi pressionado, isso porque não consigo posicionar o foco(selecionar) na linha desejada usando o BOTÃO DIREITO!!!

* ENTÃO: COMO POSSO FILTRAR O ITEM SELECIONADO SE QUANDO CLICO COM O BOTÃO DIREITO O FOCO NÃO FICA NA POSIÇÃO ONDE CLIQUEI??????

:-P

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Veja este exemplo para ver se lhe ajuda:

Private Declare Function SendMessage Lib "user32" Alias _
    "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
    Private Const LB_ITEMFROMPOINT = &H1A9

Private Sub Form_Load()

With List1
.AddItem "Computador"
.AddItem "Telefone"
.AddItem "Modem"
.AddItem "Impressora"
.AddItem "Scanner"
.AddItem "Sound Blaster"
.AddItem "Teclado"
.AddItem "CD-Rom"
.AddItem "Mouse"
End With

End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lRet As Long
    Dim lXPos As Long, lYPos As Long
    lXPos = CLng(X / Screen.TwipsPerPixelX)
    lYPos = CLng(Y / Screen.TwipsPerPixelY)

    If Button = 2 Then
        lRet = SendMessage(List1.hWnd, LB_ITEMFROMPOINT, 0, ByVal _
        ((lYPos * 65536) + lXPos))

        If lRet < List1.ListCount Then
            List1.ListIndex = lRet
        End If
        MsgBox List1.List(List1.ListIndex)
    
    End If
End Sub

Basta você fazer uma Adaptação!!!

Falow... T+

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, veja se é isto que tú quer:

Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = 2 Then
      If MsgBox("Retirar: " & ListView1.SelectedItem & " Da Lista", vbYesNo + vbInformation, "Retirar ?") = vbYes Then
            ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
      End If
   End If
End Sub

Falow... T+

Link para o comentário
Compartilhar em outros sites

  • 0

Sim é facil, porque não disse antes,

Após você montar o Menu Suspenso, coloque este código no listview:

Private Sub lstVw_MouseUp(Button As Integer, Shift As Integer, X As Single, y As Single)
    If Button = 2 Then PopupMenu Me.mnuPopUp
End Sub

Qualquer coisa é só postar!!!!

Falow... T+

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante

A dica do Marioznet funciona num List mas não em um MSFlexGrid. Como fazer isso num MSFlexGrid? Como selecionar um registro com o botão direito do mouse?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...