Entwickler-Ecke

WinForms - Wie kann ich die Größe eines ToolTipText ermitteln?


relapse - Mo 08.08.11 14:36
Titel: Wie kann ich die Größe eines ToolTipText ermitteln?
Hallo!

Ich versuche ToolTipText für ein spezielles Wort in einer RichTextBox vernünftig zu platzieren (z.B. xPos+=10; yPos -=10;). Das Problem ist, dass wenn entweder die Höhe (falls ToolTipText mehrzeilig ist) oder die Breite (einzeilig) des ToolTipText die jeweilige Größe von der RichTextBox überschreitet, wird der ToolTipText verkehrt positioniert. Also brauche ich seine Größe noch bevor er überhaupt angezeigt wird. Zu diesem Zeitpunkt steht mir der anzuzeigende Text bereits zur Verfügung.


Th69 - Mo 08.08.11 15:03

Hallo relapse,

dafür gibt es die beiden Methoden Graphics.MeasureString bzw. TextRenderer.MeasureText (es gibt kleine Unterschiede in der Berechnung, da entweder GDI bzw. GDIplus verwendet wird).
Und für beide benötigst du dann auch noch den Zeichensatz (Font), anhand dessen dann die Größe überhaupt erst ermittelt werden kann.


relapse - Mo 08.08.11 15:49

Danke! Jetzt kann ich aber nicht rausfinden, wie man den Zeichensatz vom ToolTip ermittelt :[


Th69 - Mo 08.08.11 17:08

Hallo,

du könntest SystemFonts.MenuFont [http://msdn.microsoft.com/en-us/library/system.drawing.systemfonts.menufont.aspx] dafür benutzen (dieses ist zwar nicht direkt der ToolTip-Font, aber standardmäßig hat es denselben Wert wie der ToolTip - leider gibt es wohl keine direkte Funktion, um von .NET bzw. der WinAPI aus den ToolTip-Font auszulesen).


relapse - Mo 08.08.11 18:34

Danke!!!