你得先加一个根节点,然后再加入子节点。 就好象种树得先有树跟,然后有树枝,最后有树叶。 Option ExplicitPrivate Sub Form_Load() Dim nn As Node Dim RootID(0 To 2) As Integer, BranchID(0 To 2) As Integer'先长三条树根 Set nn = TreeView1.Nodes.Add(, , , "Root01") RootID(0) = nn.Index Set nn = TreeView1.Nodes.Add(, , , "Root02") RootID(1) = nn.Index Set nn = TreeView1.Nodes.Add(, , , "Root03") RootID(2) = nn.Index'第一条根上的三条树枝 Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch01") BranchID(0) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch02") BranchID(1) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch03") BranchID(2) = nn.Index'第一条根上的第一条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf03")'第一条根上的第二条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf03")'第一条根上的第三条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf03")'再长第二条根上的三条树枝 Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch01") BranchID(0) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch02") BranchID(1) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch03") BranchID(2) = nn.Index'第二条根上的第一条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf03")'第二条根上的第二条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf03")'第二条根上的第三条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf03")'再长第三条根上的三条树枝 Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch01") BranchID(0) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch02") BranchID(1) = nn.Index Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch03") BranchID(2) = nn.Index'第三条根上的第一条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf03")'第三条根上的第二条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf03")'第三条根上的第三条树枝上的三片树叶 Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf01") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf02") Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf03") End Sub 看起来长了点,不过应该好懂,自己去优化吧。
就好象种树得先有树跟,然后有树枝,最后有树叶。
Option ExplicitPrivate Sub Form_Load()
Dim nn As Node
Dim RootID(0 To 2) As Integer, BranchID(0 To 2) As Integer'先长三条树根
Set nn = TreeView1.Nodes.Add(, , , "Root01")
RootID(0) = nn.Index
Set nn = TreeView1.Nodes.Add(, , , "Root02")
RootID(1) = nn.Index
Set nn = TreeView1.Nodes.Add(, , , "Root03")
RootID(2) = nn.Index'第一条根上的三条树枝
Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch01")
BranchID(0) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch02")
BranchID(1) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(0), tvwChild, , "Root01_Branch03")
BranchID(2) = nn.Index'第一条根上的第一条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root01_Branch01_Leaf03")'第一条根上的第二条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root01_Branch02_Leaf03")'第一条根上的第三条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root01_Branch03_Leaf03")'再长第二条根上的三条树枝
Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch01")
BranchID(0) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch02")
BranchID(1) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(1), tvwChild, , "Root02_Branch03")
BranchID(2) = nn.Index'第二条根上的第一条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root02_Branch01_Leaf03")'第二条根上的第二条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root02_Branch02_Leaf03")'第二条根上的第三条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root02_Branch03_Leaf03")'再长第三条根上的三条树枝
Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch01")
BranchID(0) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch02")
BranchID(1) = nn.Index
Set nn = TreeView1.Nodes.Add(RootID(2), tvwChild, , "Root03_Branch03")
BranchID(2) = nn.Index'第三条根上的第一条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(0), tvwChild, , "Root03_Branch01_Leaf03")'第三条根上的第二条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(1), tvwChild, , "Root03_Branch02_Leaf03")'第三条根上的第三条树枝上的三片树叶
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf01")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf02")
Set nn = TreeView1.Nodes.Add(BranchID(2), tvwChild, , "Root03_Branch03_Leaf03")
End Sub
看起来长了点,不过应该好懂,自己去优化吧。