Tooltip zur Laufzeit ändern

13/03/2008 - 18:35 von Carsten Witte | Report spam
Hallo,

ich bin mir sehr wohl bewusst, dass ich Tooltips mit
ToolTip.SetToolTip(control, "Some text") setzen kann. Allerdings ist
so ein Tooltip nicht immer statisch, also moechte ich ihn zur Laufzeit
aendern. Und zwar nur dann, wenn er ohnehin angezeigt wird. Nicht on
MouseEnter, nicht on ModifyItem, nicht on Random(10).

Also dachte ich mir, okay, bei Menues machst Du Last-Minute-Changes
(z.B. enable/disable) auch in contextMenuStrip_Opening, also sollten
Last-Minute-Changes des Tooltips nach toolTipChart_Popup. Gesagt
getan, im Prinzip auch die richtige Stelle getroffen, nur leider kann
ich den Text nicht aendern. Ich kann sehr wohl die Ueberschrift
(ToolTip.ToolTipTitle) aendern, aber nicht den Text selber. Ein
erneuter Aufruf von ToolTip.SetToolTip fuehrt naturgemaess zur
Rekusion und StackOverflow.

Wo stehen entweder ich oder die Architektur mir da im Weg? Ich wollte
noch mit nativem TTM_[GET|SET]TOOLINFO auf e.AssociatedWindow.Handle
was werden, aber die SendMessage gibt immer false und Muell in
TOOLINFO.lpszText zurueck. Kann aber auch sein, dass meine
Interopfaehigkeiten daran schuld sind.

Hat da jemand ein paar nuetzliche Tips fuer mich? Ich akzeptiere gerne
auch den Vorschlag, einen Tooltip mit LPSTR_TEXTCALLBACK zu erzeugen,
wenn man mir sagt, die das Interop einer C#-Furnktion aussehen muss,
damit ich den Callback auf NMTTDISPINFO sauber beantworten kann...



Vielen Dank im Voraus...
Carsten
 

Lesen sie die antworten

#1 Thorsten Doerfler
13/03/2008 - 20:15 | Warnen spam
Carsten Witte schrieb:
ich bin mir sehr wohl bewusst, dass ich Tooltips mit
ToolTip.SetToolTip(control, "Some text") setzen kann. Allerdings ist
so ein Tooltip nicht immer statisch, also moechte ich ihn zur Laufzeit
aendern. Und zwar nur dann, wenn er ohnehin angezeigt wird. Nicht on
MouseEnter, nicht on ModifyItem, nicht on Random(10).

Also dachte ich mir, okay, bei Menues machst Du Last-Minute-Changes
(z.B. enable/disable) auch in contextMenuStrip_Opening, also sollten
Last-Minute-Changes des Tooltips nach toolTipChart_Popup. Gesagt
getan, im Prinzip auch die richtige Stelle getroffen, nur leider kann
ich den Text nicht aendern. Ich kann sehr wohl die Ueberschrift
(ToolTip.ToolTipTitle) aendern, aber nicht den Text selber. Ein
erneuter Aufruf von ToolTip.SetToolTip fuehrt naturgemaess zur
Rekusion und StackOverflow.



Welche Stelle hast Du denn getroffen, dass es solche Auswirkungen hat?
Denn normal ist SetToolTip schon richtig, um den Tooltip zu aktualisieren.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen