FAQ 0145: Wie kann man den ToolTipText für die TreeView-Nodes ausblenden?
von Frank Schüler
Frage
Wie kann man den ToolTipText für die TreeView-Nodes ausblenden?
Antwort
Bei längeren Texten in einem TreeView-Node, die über die Begrenzung des TreeViews hinausreichen, erscheint eine ToolTipText-Box mit dem Text aus dem Node. Leider gibt es keine Eigenschaft für das TreeView, mit der sich diese ToolTipText-Box ein- oder ausschalten lässt.
Über einen kleinen Umweg lässt sich diese Funktion für das TreeView nachrüsten. Die normale ToolTipText-Box des TreeView bleibt davon unberührt:
' Modul Option Explicit Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Const TVS_NOTOOLTIPS As Long = &H80 Private Const GWL_STYLE As Long = (-16) '------------------------------------------------------ ' Funktion : TreeviewNodeToolTipText ' Beschreibung : ToolTipText-Box für Nodes bei einem ' Treeview ein oder ausschalten ' Übergabewert : Trv = TreeView ' Optional NodeToolTipText = True (ausschalten) ' = False (einschalten) ' Rückgabewert : True = Aktion war erfolgreich ' False = Aktion war nicht erfolgreich '------------------------------------------------------ Public Function TreeviewNodeToolTipText( _ ByVal Trv As TreeView, _ Optional ByVal NodeToolTipText As Boolean = True _ ) As Boolean Dim lngCurrentStyle As Long Dim Result As Long lngCurrentStyle = GetWindowLong(Trv.hwnd, GWL_STYLE) If NodeToolTipText Then lngCurrentStyle = lngCurrentStyle Or TVS_NOTOOLTIPS Else If (lngCurrentStyle And TVS_NOTOOLTIPS) = TVS_NOTOOLTIPS Then lngCurrentStyle = lngCurrentStyle Xor TVS_NOTOOLTIPS End If End If Result = SetWindowLong(Trv.hwnd, GWL_STYLE, lngCurrentStyle) Call Trv.Refresh DoEvents TreeviewNodeToolTipText = (Result <> 0) End Function
' Formular Option Explicit Private Sub Form_Load() ' Node ToolTipText-Box abschalten Call TreeviewNodeToolTipText(TreeView1, True) ' Node ToolTipText-Box einschalten ' Call TreeviewNodeToolTipText(TreeView1, False) ' normale ToolTipText-Box TreeView1.ToolTipText = "Der normale ToolTipText" Call TreeView1.Nodes.Add(, , "a", _ "Ein relativ langer Text in diesem Node") Call TreeView1.Nodes.Add("a", tvwChild, "b", _ "Ein relativ langer Text in diesem Node") Call TreeView1.Nodes.Add("b", tvwChild, "c", _ "Ein relativ langer Text in diesem Node") End Sub
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.