2009-03-16 13 views
1

Ich verwende das CellToolTipTextNeeded Ereignis eines DataGridView, und der Tooltip wird unter der Maus angezeigt. Ich kann das Objekt ToolTip über Reflektion abrufen, aber ich habe keine Kontrolle darüber, wo es positioniert ist, da ich nicht derjenige bin, der Show() aufruft. Wie verschiebe ich einen Tooltip?Wie verschiebe ich einen Tooltip?

Antwort

1

Wie wäre es mit einem benutzerdefinierten?

1

Ich denke die kurze Antwort ist: Sie können nicht, noch nicht sowieso. Ich würde wahrscheinlich darüber nachdenken, eine benutzerdefinierte wie "unbekannt (yahoo)" zu erstellen.

1

Sie müssen die QuickInfo selbst steuern, indem Sie die Methoden Anzeigen und Ausblenden verwenden, wenn Sie mit dem 2.0-Framework steuern möchten, wie und wo es positioniert ist, es sei denn, Sie möchten die API-Aufrufe von Windows aufrufen.

Leider sieht es so aus, als wäre die Tooltip-Position sehr, sehr früh in ihrer Erstellung festgelegt. Die Tooltip hat nur 3 Ereignisse zu handhaben, und in diesem Fall sind wir nicht sehr an Dispose interessiert.

Das Draw-Ereignis wird nach dem Popup-Ereignis ausgelöst und es scheint, als ob die Position bereits festgelegt wurde, da die Bounds-Eigenschaft in den PopupEventArgs schreibgeschützt ist.

Hier ist ein Link zu einem von vielen Artikeln (zum Zeitpunkt dieser Veröffentlichung) auf ein benutzerdefiniertes Steuerelement zu erstellen: http://andrusdevelopment.blogspot.com/2007/10/implementing-custom-tooltip-in-c.html

Und die MSDN-Dokumentation der Tooltip 's Show über die Verwendung und ausblenden Methoden sind eigentlich recht ordentlich: http://msdn.microsoft.com/en-us/library/44atyhsa(VS.80,printer).aspx

Entschuldigung, aber es sieht einfach nicht so aus, als ob es eine schnelle und einfache Antwort zu diesem gibt. Hoffentlich wird mir jemand beweisen, dass ich falsch bin.

Scott

Verwandte Themen