=====Evénement MouseEnter et Tooltip===== L'utilisation combinée de l'évènement ''MouseEnter'' et d'une ''ToolTip'' sur un même composant est soumis à problème. Prenons un composant graphique d'une grande taille. La souris vient dessus, déclenche instantanément ''MouseEnter'' puis au bout d'un certain délai, la ''ToolTip'' s'affiche. Ensuite, la ''ToolTip'' étant apparue dessus le composant, il est possible de déplacer la souris dessus. Et c'est à ce moment que le problème arrive. Si la souris arrive à aller dessus, l'évènement ''MouseEnter'' est déclenchée en boucle. Le seul moyen que j'ai trouvé est d'installer une tempo entre deux appels de l’événement ''MouseEnter'' et si elle est inférieure à une certaine valeur (faire quelques tests mais 50ms semble suffisant), forcer la disparition de la ''ToolTip''. Donc : Créer un composant graphique dérivé de ''ToolTip'' dans lequel, à chaque événement Popup, sa référence est stockée. C'est nécessaire car il n'est pas possible de connaître le ''ToolTip'' depuis un composant. public class ToolTipPerso : ToolTip { static public ToolTip LastToolTipShown { get; private set; } private void ToolTipPopup(object sender, PopupEventArgs e) { LastToolTipShown = this; } public ToolTipPerso(Control ctrl, string texte) { AutoPopDelay = 5000; InitialDelay = 300; ReshowDelay = 300; ShowAlways = false; UseAnimation = false; UseFading = false; SetToolTip(ctrl, texte); Popup += new PopupEventHandler(ToolTipPopup); } } Affecter la ToolTip de la façon suivante : new ToolTipPerso(ctrl, texte); Puis, dans l'événement ''MouseEnter'' : gérer le temps entre deux appels : // Stocke le temps écoulé entre deux appels private Stopwatch timeWatch = new Stopwatch(); public void MouseEnter(object sender, EventArgs e) { if (timeWatch.IsRunning) { timeWatch.Stop(); if (timeWatch.ElapsedMilliseconds < 50) { // On masque la ToolTip pour éviter l'appel en boucle de MouseEnter ToolTipPerso.LastToolTipShown.Hide((IWin32Window)sender); } } timeWatch.Reset(); timeWatch.Start(); .... }