cs_johndave
Messages postés35Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention 2 juin 2015
-
5 déc. 2008 à 16:10
cs_johndave
Messages postés35Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention 2 juin 2015
-
10 déc. 2008 à 18:12
Mon probleme c'est qu'il faut que je fasses un click gauche d'abord pour selectionner sur un element dans une liste avant de faire un click droit pour afficher un popup menu. Comment faire pour selectionner un element dans une liste avec un click droit?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 7 déc. 2008 à 03:39
salut,
bien tenté mais non
ce n'est pas un problème de focus, la SELECTION ne se fait que par un click gauche.
il suffit simplement de simuler ce click gauche lors de la détection du click droit
Option Explicit
Private Declare Sub
mouse_event
Lib
"user32"
(
ByVal
dwFlags
As Long
,
ByVal
dx
As Long
,
ByVal
dy
As
Long
,
ByVal
cButtons
As Long
,
ByVal
dwExtraInfo
As Long
)
Private Const
MOUSEEVENTF_LEFTDOWN
As Long
=
&H2
Private Const
MOUSEEVENTF_LEFTUP
As Long
=
&H4
Private Sub
List1_MouseUp(Button
As Integer
, Shift
As Integer
, X
As Single
, Y
As Single
)
If Button = vbRightButton Then
' c'est le bouton droit,
on va simuler le bouton gauche
Call mouse_event(MOUSEEVENTF_LEFTDOWN
Or MOUSEEVENTF_LEFTUP, X,
Y, 0&, 0&)
End If
End Sub
'----------
'
EXEMPLE
'----------
Private Sub Form_Load()
List1.AddItem "ligne
1"
List1.AddItem "ligne 2"
List1.AddItem "ligne
3"
List1.AddItem "ligne 4"
List1.AddItem "ligne 5"
End Sub
Private Sub List1_Click()
' l'évènement sera
relevé tant au click gauche qu'au click droit
MsgBox List1.List(List1.ListIndex)
End Sub