Rubrik: Controls · TreeView | VB-Versionen: VB6 | 16.12.08 |
TreeView mit laufender ToolTip-Anzeige Ein Trick, wie man jedes einzelne Element eines TreeView-Controls mit einem individuellen ToolTip ausstatten kann. | ||
Autor: Dieter Otter | Bewertung: | Views: 15.894 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Haben Sie sich nicht auch schon mal darüber geärgert, dass ein TreeView-Element (Node-Objekt) über keine ToolTipText-Eigenschaft verfügt?
Mit einem Klick Trick schaffen wir hier Abhilfe. Den Text, der für das jeweilige Node-Objekt als ToolTip angezeigt werden soll, speichern wir einfach in der Tag-Eigenschaft des Node-Objekts. Befindet sich der Mauszeiger über das Control, fragen wir im MouseMove-Event das Node-Objekt unter dem Mauszeiger ab und weisen anschließend den ToolTip-Text aus der Tag-Eigenschaft des Node-Objekts der allgemeinen ToolTipText-Eigenschaft des Control zu. Auf diese Weise können wir das TreeView-Control sehr einfach mit einer laufenden und sogar individuellen ToolTipText-Anzeige ausstatten.
Für das nachfolgende Beispiel erstellen Sie ein neues Projekt, platzieren auf die Form ein TreeView-Control und fügen nachfolgenden Code in den Codeteil der Form ein:
Option Explicit Private Sub Form_Load() ' TreeView füllen Dim i As Long For i = 1 To 100 With TreeView1.Nodes.Add(, , , "Eintrag " & CStr(i)) ' ToolTipText in der Tag-Eigenschaft des ' jeweiligen Node-Objekts speichern .Tag = "Individueller ToolTip für Eintrag Nr. " & CStr(i) End With Next i End Sub
Private Sub TreeView1_MouseMove(Button As Integer, _ Shift As Integer, x As Single, y As Single) ' Node-Objekt unter dem Mauszeiger ermitteln Dim oNode As MSComctlLib.Node Set oNode = TreeView1.HitTest(x, y) If Not oNode Is Nothing Then ' ToolTip aus der Tag-Eigenschaft des ' Node-Objekt auslesen+ TreeView1.ToolTipText = oNode.Tag Else ' ToolTip löschen TreeView1.ToolTipText = "" End If End Sub