Bonjour
Dans un formulaire j'ai un contrôle Panel. Sur ce panel je gère des éléments graphiques sur lesquels je peux agir en les sélectionnant et en les déplaçant à l'aide de la souris notamment. Ceci en utilsant du code dans les fonctions de gestion des évènements MouseDown, MouseMove ...
Un MouseDown sur le panel provoque la sélection de l'élément présent sous le curseur et bien sûr MouseMove s'enchaîne immédiatement.
Mon problème survient lorsque j'ouvre une boîte de dialogue par dessus mon formulaire, par exemple une boîte OpenFileDialog. Une fois la boîte ouverte, lorsque je double clique sur le nom d'un fichier, celui-ci est sélectionné, la boîte fermée, mais lorsque je suis de retour sur mon panel, l'objet se trouvant sous la position du curseur lors du double-clic sur la boîte de dialogue se trouve déplacé.
J'ai essayé de gérer l'évènement MouseMove lors de l'ouverture de la boîte de dialogue en procédant comme suit :
avant l'appel de openFileDialog1->ShowDialog(), j'enlève le lien avec l'évènement MouseMove avec panel->MouseMove -= gcnew ...
et une fois la boite fermée, je fais l'opération inverse avec panel->MouseMove += gcnew ... . Hélas cela ne marche pas.
Quelle méthode pourrais-je employer pour résoudre mon problème?
Partager