【CSDN】【散分问题,请问如何判断树型节点是未结点,如何取得此结点的层次数,如何依次取得此结点所在路径的所有结贴名称】

drillmaster 2003-10-16 10:56:01
请问
1)如何判断树型节点是未结点,
2)如何取得此结点的层次数,
3)如何依次取得此结点所在路径的所有结贴名称
...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hacker007 2003-10-18
  • 打赏
  • 举报
回复
如何依次取得此结点所在路径的所有结贴名称

Option Explicit

Private Sub Form_Load()
Dim nodX As Node
Dim nodX1 As Node

Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
Set nodX1 = TreeView1.Nodes.Add("C1", tvwChild, "CC1", "Level2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
nodX.EnsureVisible
TreeView1.Style = tvwTreelinesPlusMinusText
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim lvItem As Node
Set lvItem = TreeView1.SelectedItem
While Not lvItem Is Nothing
List1.AddItem lvItem.Text
Set lvItem = lvItem.Parent
Wend
End Sub


射天狼 2003-10-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2364/2364307.xml?temp=.9630701
rainstormmaster 2003-10-17
  • 打赏
  • 举报
回复
如何取得此结点的层次数
Option Explicit

Private Sub Form_Load()
Dim nodX As node
Dim nodX1 As node

Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
Set nodX1 = TreeView1.Nodes.Add("C1", tvwChild, "CC1", "Level2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
nodX.EnsureVisible
TreeView1.Style = tvwTreelinesPlusMinusText ' Style 4.
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal node As MSComctlLib.node)
MsgBox "节点位于第" + CStr(getlayer(node, TreeView1)) + "层"
End Sub

Private Function getlayer(node As node, treeview As treeview) As Long '根节点为第1层
Dim pnode As node
Dim num As Long
num = 1
Set pnode = node
Do While Not pnode.Parent Is Nothing
Set pnode = pnode.Parent
num = num + 1
Loop
getlayer = num
End Function
TechnoFantasy 2003-10-17
  • 打赏
  • 举报
回复
'依次取得此结点所在路径的所有结贴名称

Option Explicit

Private Sub Form_Load()
Dim nodX As Node
Dim nodX1 As Node

Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
Set nodX1 = TreeView1.Nodes.Add("C1", tvwChild, "CC1", "Level2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
nodX.EnsureVisible
TreeView1.Style = tvwTreelinesPlusMinusText ' Style 4.
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim a
Dim i As Integer

a = Split(Node.FullPath, "\")

List1.Clear
For i = LBound(a) To UBound(a)
List1.AddItem a(i)
Next i
End Sub
TechnoFantasy 2003-10-17
  • 打赏
  • 举报
回复
获得节点层次:

Option Explicit

Private Sub Form_Load()
Dim nodX As Node
Dim nodX1 As Node

Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
Set nodX1 = TreeView1.Nodes.Add("C1", tvwChild, "CC1", "Level2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
nodX.EnsureVisible
TreeView1.Style = tvwTreelinesPlusMinusText ' Style 4.
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Dim a

a = Split(Node.FullPath, "\")

MsgBox ("节点层次:" & (UBound(a) - LBound(a) + 1))
End Sub
TechnoFantasy 2003-10-17
  • 打赏
  • 举报
回复
判断节点是否为末节点:

Option Explicit

Private Sub Form_Load()
Dim nodX As Node
Dim nodX1 As Node

Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
Set nodX1 = TreeView1.Nodes.Add("C1", tvwChild, "CC1", "Level2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
nodX.EnsureVisible
TreeView1.Style = tvwTreelinesPlusMinusText ' Style 4.
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If (Node.Child Is Nothing) Then
MsgBox "节点是叶子节点"
Else
MsgBox "节点不是叶子节点"
End If
End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧