2009-03-16 4 views
1

J'utilise l'événement CellToolTipTextNeeded d'un DataGridView, et l'info-bulle est affichée sous la souris. Je peux obtenir l'objet ToolTip par réflexion, mais je n'ai aucun contrôle sur l'endroit où il est positionné puisque ce n'est pas moi qui appelle Show(). Comment déplacer une info-bulle?Comment déplacer une info-bulle?

Répondre

1

Je pense que la réponse courte est: vous ne pouvez pas, pas encore de toute façon. Je penserais probablement à la construction d'un custom comme 'unknown (yahoo)' suggéré.

1

Vous devrez contrôler vous-même l'info-bulle à l'aide des méthodes Afficher et Masquer si vous souhaitez avoir un contrôle sur comment et où vous le positionnez à l'aide du framework 2.0, sauf si vous souhaitez entrer dans les API de Windows.

Malheureusement, il semble que la position de l'info-bulle soit définie très tôt dans sa création. L'info-bulle n'a que 3 événements à gérer, et nous ne sommes pas très intéressés par Dispose dans ce cas. L'événement Draw est déclenché après l'événement Popup et il semble que la position a déjà été définie comme la propriété Bounds dans PopupEventArgs est en lecture seule.

est ici un lien vers l'un des nombreux articles (au moment de ce post) sur la création d'un contrôle personnalisé: http://andrusdevelopment.blogspot.com/2007/10/implementing-custom-tooltip-in-c.html

et la documentation MSDN sur l'utilisation Show de l'info-bulle et Masquer les méthodes est en fait assez décent: http://msdn.microsoft.com/en-us/library/44atyhsa(VS.80,printer).aspx

Désolé, mais il ne semble pas y avoir une réponse rapide et facile à celui-ci. Espérons que quelqu'un me prouvera que les deux sont des sectes.

Scott