2009-10-20 4 views
2

J'ai une forme de fenêtre avec un tooltip dedans avec plusieurs boutons. Lorsque la souris se trouve sur un bouton de l'infobulle, le bouton de la barre d'outils commence à clignoter ... il semble qu'il disparaisse et perd son focus toutes les secondes. Il en résulte pour le clic de ne rien faire si l'utilisateur clique au moment où le bouton n'a pas de focus donc l'utilisateur doit cliquer à nouveau sur le bouton et à nouveau il utilise le timing correct.ToolStrip Boutons clignote

Est-ce que quelqu'un sait quelque chose à ce sujet?

Je rallie besoin de réponses le plus rapidement possible ...

Merci beaucoup

Répondre

4

J'ai trouvé la raison ... Les toolstrips dans Windows Forms ont par défaut les info-bulles réglé sur Auto et si l'info-bulle s'ouvre dans la barre des tâches, la barre d'outils perd le focus.

La solution consiste à désactiver les infobulles ou à le mettre en mode manuel et afficher l'info-bulle à un autre endroit.

1

Voici le code pour montrer la pointe de l'outil au-dessus de l'élément manuellement:

private readonly ToolTip currentToolTip = new ToolTip(); 

private void ToolStripItem_MouseEnter(object sender, EventArgs e) 
{ 
    ToolStripItem item = (ToolStripItem)sender; 
    this.currentToolTip.Show(item.ToolTipText, item.Owner, item.Bounds.X, -20); 
} 

private void ToolStripItem_MouseLeave(object sender, EventArgs e) 
{ 
    ToolStripItem item = (ToolStripItem)sender; 
    this.currentToolTip.Hide(item.Owner); 
} 

Vous devez ajouter les gestionnaires d'événements à tous vos ToolStripItems et mettre à false les ShowItemToolTips des toolstrips.