Servus,
kopiere folgenden Code in ein Form-Modul und füge die Komponente (Menü Projekt\Komponenten) "Microsoft Windows Common Controls x.x" zum Projekt. (gibts von der Komponente verschiedene Versionen, dann die neuste auswählen)
Anschließen auf die Form ein Treeview- und ein ImageList-Control setzen.
1) Am Treeview brauchen keine Eigenschaften geändert werden.
2) Das ImageList-Control mit der rechten Maustaste anklicken und "Eigenschaften" wählen.
3) Dann auf die Seite "Abbildungen" wechseln und
4) mit der Schaltfläche "Bild einfügen..." 2 Bilder (möglichst 16x16-Pixel-Symbole) einfügen.
Option Explicit
Private Sub Form_Load()
On Error Resume Next
Dim NM As Node, NC As Node
With TreeView1
.Indentation = 20 * Screen.TwipsPerPixelX ' untergeordnete Einträge um 20
' Pixel einrücken
.LabelEdit = tvwManual ' sonst können Einträge wie im Explorer umbenannt
' werden (markierten Eintrag nochmals einmal anklicken und Mauszeiger
' sofort auf dem selben Eintrag weiterbewegen)
.Style = tvwTreelinesPlusMinusPictureText ' Darstellung --> einfach mal
' probieren
.LineStyle = tvwTreeLines 'tvwRootLines --> wenn vor "Menü" auch das _
Kreuz gezeigt werden soll
' Bilder anbinden
Set .ImageList = ImageList1
' Ersten Eintrag einfügen und im Objekt "NM" merken (Bild 1 zuweisen)
Set NM = .Nodes.Add(, tvwFirst, , "Menü", 1)
' Eintrag "Datei" als Unterpunkt von "NM" (also "Menü") anlegen und als
' "NC" merken (Bild 2 zuweisen)
Set NC = .Nodes.Add(NM, tvwChild, , "Datei", 2)
' mehrere Unterpunkt in "NC" (hier also Datei) anlegen und Bild 2
' zuweisen
.Nodes.Add NC, tvwChild, , "Öffnen", 2
.Nodes.Add NC, tvwChild, , "Speichern", 2
.Nodes.Add NC, tvwChild, , "Schließen", 2
' Eintrag "Bearbeiten" als Unterpunkt von "NM" (also "Menü") anlegen und
' als "NC" merken (Bild 2 zuweisen)
Set NC = .Nodes.Add(NM, tvwChild, , "Bearbeiten", 2)
' mehrere Unterpunkt in "NC" (diesmal Bearbeiten) anlegen und Bild 2
' zuweisen
.Nodes.Add NC, tvwChild, , "Ausschneiden", 2
.Nodes.Add NC, tvwChild, , "Kopieren", 2
.Nodes.Add NC, tvwChild, , "Einfügen", 2
' Eintrag "Menü" aufklappen
NM.Expanded = True
' Speicher freigeben
Set NC = Nothing
Set NM = Nothing
End With
End Sub
Private Sub Form_Resize()
With TreeView1
.Top = 0
.Left = 0
.Height = ScaleHeight
.Width = ScaleWidth \ 3 ' 1/3 Fensterbreite
End With
End Sub
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, _
y As Single)
Dim N As Node
Set N = TreeView1.HitTest(x, y)
' Kein EIntrag markiert? --> Sub abbrechen
If N Is Nothing Then Exit Sub
' enthält der angeklickte Eintrag keine Unterpunkte --> dann Ausgabe
If N.Children = 0 Then
MsgBox N.Text & " angeklickt"
End If
Set N = Nothing
End Sub Viel Spass,
R@lf |