OVH Cloud OVH Cloud

Faire suivre l'évenement

2 réponses
Avatar
hart7351
Bonjour =E0 tous,

Voila, j'ai un petit souci dans mon appli et peut etre pourrez vous
m'aider :
-> dans une windows form sous visual studio 2003, j'ai un composant
listview avec des items dedans
j'ai cr=E9=E9 un menu contextuel pour que lorsque je click sur un des
=E9l=E9ment de la liste il s'affiche, voici le code :
Private Sub ListObjets_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles ListObjets.MouseDown
'se produit quand je click avec la souris sur le liste des
objets
If e.Button =3D MouseButtons.Right Then
Dim eh As EventHandler

ContextMenuListObj.MenuItems.Clear() 'je vide le menu

Dim ItemDeplacer As New MenuItem 'd=E9claration
Dim ItemCopier As New MenuItem

ItemDeplacer =3D RemplirMenuItem().MenuItems(0) 'remplissage
de entit=E9s
ItemCopier =3D RemplirMenuItem().MenuItems(0)

ItemDeplacer.Text =3D "D=E9placer vers..." 'je met le texte
ItemCopier.Text =3D "Copier vers..."

'remplissage du menu
ContextMenuListObj.MenuItems.Add(ItemDeplacer)
ContextMenuListObj.MenuItems.Add(ItemCopier)

'affichage
ContextMenuListObj.Show(sender, New Point(e.X, e.Y))
End If
End Sub


Le menu contextuel s'affiche correctement, mais si je fait un click
droit sur un autre item de ma listview, le menu s'affiche avant que le
s=E9lection ne change, alors que je souhaite que lorsqu'on fait un click
droit sur un item, l'item passe en s=E9lection, et le menu contextuel
s'affiche.

J'ai pas mal cherch=E9 pour essayer de faire suivre l'=E9venement juste
avant l'affichage du menu mais je n'ai rien trouv=E9.

Merci pour votre aide, Jean-Fran=E7ois

2 réponses

Avatar
Millox Frédéric
Salut Jean-François,

D'après le petit exemple que je me suis fait, si tu utilises l'événement
MouseUp plutôt que l'événement MouseDown, ça marche nickel :-)

A+

--
fmillox


"" a écrit :

Bonjour à tous,

Voila, j'ai un petit souci dans mon appli et peut etre pourrez vous
m'aider :
-> dans une windows form sous visual studio 2003, j'ai un composant
listview avec des items dedans
j'ai créé un menu contextuel pour que lorsque je click sur un des
élément de la liste il s'affiche, voici le code :
Private Sub ListObjets_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles ListObjets.MouseDown
'se produit quand je click avec la souris sur le liste des
objets
If e.Button = MouseButtons.Right Then
Dim eh As EventHandler

ContextMenuListObj.MenuItems.Clear() 'je vide le menu

Dim ItemDeplacer As New MenuItem 'déclaration
Dim ItemCopier As New MenuItem

ItemDeplacer = RemplirMenuItem().MenuItems(0) 'remplissage
de entités
ItemCopier = RemplirMenuItem().MenuItems(0)

ItemDeplacer.Text = "Déplacer vers..." 'je met le texte
ItemCopier.Text = "Copier vers..."

'remplissage du menu
ContextMenuListObj.MenuItems.Add(ItemDeplacer)
ContextMenuListObj.MenuItems.Add(ItemCopier)

'affichage
ContextMenuListObj.Show(sender, New Point(e.X, e.Y))
End If
End Sub


Le menu contextuel s'affiche correctement, mais si je fait un click
droit sur un autre item de ma listview, le menu s'affiche avant que le
sélection ne change, alors que je souhaite que lorsqu'on fait un click
droit sur un item, l'item passe en sélection, et le menu contextuel
s'affiche.

J'ai pas mal cherché pour essayer de faire suivre l'évenement juste
avant l'affichage du menu mais je n'ai rien trouvé.

Merci pour votre aide, Jean-François




Avatar
hart7351
Un grand merci a toi fmillox.
Je me demande bien pourquoi je n'y ai pas pensé !!!
C'est tellement simple, je me prend la tete sur des fonctions
récursive et jsuis meme pas capable de trouver juste ce petit truc.
Encore merci, JF