[C#]Problème avec l'évenement ItemDrag d'une TreeView

[Résolu]
Signaler
Messages postés
21
Date d'inscription
vendredi 24 juin 2005
Statut
Membre
Dernière intervention
8 novembre 2006
-
Messages postés
21
Date d'inscription
vendredi 24 juin 2005
Statut
Membre
Dernière intervention
8 novembre 2006
-
Je fais du Drag&Drop dans ma TreeView, et j'utilise l'évement
ItemDrag donc. Le problème est que quand je fais un clic droit sur ma
TreeView pour afficher mon menu contextuel, et qu'ensuite je fais un
clic gauche sur l'un des éléments (du menu contextuel), l'évenement
ItemDrag est déclenché et le Drag&Drop est effectué ce qui est
vraiment gênant. Est ce que vous avez une idée d'où ça peut venir?


Merci de votre aide!

4 réponses

Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007

Je ne suis pas un pro mais as tu pensé à créer une variable booléènne pour y mettre l'état de ton menu contextuel (ouvert / fermé) et d'encapsuler ton code dans l'ItemDrag dans un if(!monMenuOuvert) ?

Sinon je penses que l'evenement doit se déclencher car tu es toujours dans la zone du TreeView lorsque tu clic sur ton menu contextuel...
Messages postés
147
Date d'inscription
samedi 7 juin 2003
Statut
Membre
Dernière intervention
8 décembre 2007

Oui c'est étrange, il doit y avoir une raison très logique à ceci mais comme je n'ai jamais utiliser cet evenement je ne peut pas t'aider d'avantage à comprendre ce problème...

As tu vérifié si ton élément était bien en Selected lorsque le menu est ouvert ? Si ça se trouve l'evenement de selection et interrompu par l'ouverture du menu contextuel et il croi alors que tu es en train de le bouger...
Messages postés
21
Date d'inscription
vendredi 24 juin 2005
Statut
Membre
Dernière intervention
8 novembre 2006

Merci pour ta réponse rapide
C'est vrai que j'ai pas pensé à ça, je cherchais plutôt à comprendre l'origine du bug que de le résoudre, merci je vais le résoudre temporairement avec ton idée.
En fait quand je fais un clic droit sur le menu contextuel, je suis toujours dans la zone de la TreeView. Mais normalement, le Drag Drop ne se déclenchera que si j'essaye de bouger un noeud de l'arbre, si je le selectionne j'effectue un autre traitement.
Messages postés
21
Date d'inscription
vendredi 24 juin 2005
Statut
Membre
Dernière intervention
8 novembre 2006

J'ai pas tout compris mais je crois que c'est ça. quand je fais un clic je selectionne d'abord le noeud puis je regarde si c un clic droit ou gauche. En tout cas ta solution d'utiliser une variable booleenne marche parfaitement. merci