For tt = 1 To UBound(idbsi)
If ii = 1 Then
If glyuan = "" Then
rs2.Open "select * from " & bm & " where id=" & xuexiaoid & " and b1=" & idbsi(tt), conn, 1, 1
Else
rs2.Open "select * from " & bm & " where b1=" & idbsi(tt), conn, 1, 1
End If
Else
rs2.Open "select * from " & bm & " where b1=" & idbsi(tt), conn, 1, 1
End If
If Not rs2.EOF Then
While Not rs2.EOF
idbs2 = idbs2 & "//" & rs2.Fields("id")
'Debug.Print "[外"; ii & "-内"; tt & "=" & idbs; "]" & "父节点:bm" & ii & "a" & Rs2.Fields("b1"), "下一父节点:bm" & ii + 1 & "a" & (Rs2.Fields("id"))
Set xNode = TreeView1.Nodes.Add("bm" & ii & "a" & rs2.Fields("b1"), tvwChild)
'xNode.Expanded = True
xNode.Key = "bm" & ii + 1 & "a" & (rs2.Fields("id"))
xNode.Tag = rs2.Fields("id")
xNode.Text = rs2.Fields("bm")
xNode.Image = 1
xNode.SelectedImage = 2
rs2.MoveNext
Wend
Else
'MsgBox idbsi(tt)
End If
Next tt
idbs = idbs2
Next ii
Private Sub TreeView1_DblClick()
If mNodeClick = 1 Then Exit Sub
MsgBox TreeView1.Nodes.Item(TreeView1.SelectedItem.Index).tag
Unload Me
End Sub
这样不行
我的目的是:无论这树有多少个节点,点击任意一个节点,都可以此节点对应的树的第2级节点的那个的tag,如点击a1得到a2的tag,点击c8也是得到c2的tag,这样。谢谢高手了。
a1 第1层
a2 第2层
a3 第3层
a4 第4层
B 第0层
b1 第1层
b2 第2层
b3 第3层
b4 第4层
……
定义层数,根节点层数为0,其余节点层数等于父节点层数+1,层数值在添加Node的时候存到Node的.tag属性里面,具体方法见#2楼,从.SelectedItem.tag取当前节点的层数,循环.parent取父节点、父父节点、父父父节点一直取到.tag属性里面层数=2的节点或者循环.child取子节点、子子节点、子子子节点一直取到.tag属性里面层数=2的节点。方法在#2、#5楼不都告诉你了,你就不知道自己动点脑子变通一下