Détecter le passage de la souris sur un MenuItem VB.Net 2003
gerbito
Messages postés39Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention20 octobre 2015
-
26 sept. 2008 à 16:01
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
3 oct. 2008 à 18:09
Bonjour,
J'ai un gros souci avec VB.Net 2003 : j'ai dérivé les classes MenuItem et MainMenu et je souhaite que mes composants ainsi créés changent d'aspect losque l'on passe dessus avec la souris.
Je n'ai pas trouvé dans la classe MenuItem quelquechose qui détecte le passage de la souris (pas de MouseMove ou dechoses de ce genre).
J'ai essayé, dans la méthode OnDrawItem que j'ai dérivée dans mon code, de repérer la présence du bit DrawItemState.Focus dans la propriété State du DrawItemEventArgs passé en paramètre à cette méthode, mais cela ne fonctionne pas.
J'ai créé un thread dans mon composant qui surveille la position de la souris dans le formulaire pour déclencher le dessin du composant, mais ca ne fonctionne guère plus. Quelqu'un aurait-il une idée pour résoudre ce petit souci ?
Merci de votre aide
A voir également:
Détecter le passage de la souris sur un MenuItem VB.Net 2003
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 26 sept. 2008 à 18:32
Salut,
Beuh?
Private Sub FichierToolStripMenuItem_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles FichierToolStripMenuItem.MouseEnter
Le contrôle MenuItem a bien les événements lié à la souris. D'ailleurs, ces événements dérivent de Control, impossible de ne pas les avoir donc.
(... ou alors il y a un truc que je n'ai pas compris)
gerbito
Messages postés39Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention20 octobre 2015 29 sept. 2008 à 09:28
Merci d'avoir répondu
Mais contrairement à ce que tu crois, le MenuItem n'hérite pas de Control, mais de Menu, Component et MarshalByRefObject. Il gère le clic mais pas le survol par la souris. Si c'était aussi simple, je n'aurais pas posé la question dans le forum. Ce que tu dis est sûrement vrai dans les versions postérieures, mais j'utilise VB 2003
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 3 oct. 2008 à 18:09
Effectivement, tu as raison, désolé d'avoir répondu à la va vite sans vérifier mes dires.
MenuItem n'hérite pas de Control, et n'implémente pas les événements souris.
Dans mon exemple, j'ai simplement créer un MenuStrip puis je lui ai ajouté des items: Après vérification, ces items ne sont pas des MenuItem mais des ToolStripMenuItem.
Le ToolStripMenuItem n'hérite toujours pas de Control, mais il gère les événements souris.
VB 2003 c'est le framework 2.0 sauf erreur? Dans ce cas, tu as le ToolStripMenuItem ou le ToolStripItem:
"Représente la classe de base qui gère des événements et la disposition pour tous les éléments que ToolStrip ou ToolStripDropDown peut contenir."
Espérant que cette piste te soit plus utile que mon message précédent.