01. september 2004 - 07:20
Der er
6 kommentarer og
1 løsning
Træstruktur med delvdefineret indhold
Hmm, svært at finde på en passende overskrift.
Jeg har en textfil med
Kat
-hale
-hoved
Hund
-hale
-hoved
-- øjne
-- ører
- poter
Hest
Ko
-ører
Kanin
-hoved
Altså teskter i flere "niveauer"
Dem skal jeg have til at fungere som en Dir-kontrol, altså som en træstruktur der kan foldes ind og ud. Hvilken kontrol bruger man - og hvordan?
01. september 2004 - 08:33
#2
Hurtigt eksempel:
Dim n1 As Node, n2 As Node, n3 As Node
With TreeView1.Nodes
Set n1 = .Add(, , , "Kat")
Set n2 = .Add(n1.Index, tvwChild, , "hale")
Set n2 = .Add(n1.Index, tvwChild, , "hoved")
n1.Expanded = True
Set n1 = .Add(, , , "Hund")
Set n2 = .Add(n1.Index, tvwChild, , "hale")
Set n2 = .Add(n1.Index, tvwChild, , "hoved")
Set n3 = .Add(n2.Index, tvwChild, , "øjne")
Set n3 = .Add(n2.Index, tvwChild, , "ører")
n2.Expanded = True
n1.Expanded = True
End With
01. september 2004 - 09:24
#3
Ok - det er det så.
Så skal jeg bare lave en smart rutine der læser ind i et treeview, da der er et ukendt antal poster og ukendt antal underposter. Det skal jeg nok finde ud af.
Hvordan registrere man så hvad der er markeret - hvis jeg vil aflæse hvilken node der er markeret, når jeg fx. trykker på en commandbutton?
01. september 2004 - 09:51
#4
Eller rettere - hvordan får jeg at vide, at det er "Hund > Hoved > Ører" der er markeret, når det f.eks. er det der er markeret?
01. september 2004 - 11:04
#5
Du kan gå fra SelectedItem via Parent helt op til roden
For eksempel:
Dim n As Node
Dim s As String
Set n = TreeView1.SelectedItem
Do Until n Is Nothing
If s <> "" Then s = " > " & s
s = n.Text & s
Set n = n.Parent
Loop