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

drillmaster3 2003-10-16 11:13:28
请问
1)如何判断树型节点是未结点,
2)如何取得此结点的层次数,
3)如何依次取得此结点所在路径的所有结贴名称
...全文
81 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 ' 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

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 ' Style 4.
TreeView1.BorderStyle = vbFixedSingle

End Sub

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If TreeView1.SelectedItem.Children <= 0 Then
MsgBox "节点是叶子节点"
Else
MsgBox "节点不是叶子节点"
End If
End Sub

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 ' 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
射天狼 2003-10-17
  • 打赏
  • 举报
回复
1)If TreeView1.SelectedItem.Next Is Nothing Then MsgBox "没有后继结点了"
2)MsgBox TreeView1.SelectedItem.Children

3)
Dim lvItem As Node

lvItem = TreeView1.SelectedItem.Child
While Not lvItem
MsgBox lvItem.Text

Set lvItem = lvItem.Next
Wend

'我没有测试,你试一下吧!
j4sxw 2003-10-17
  • 打赏
  • 举报
回复
1)如何判断树型节点是未结点,If tvMenus.SelectedItem.Children > 0 Then Exit Sub
3)如何依次取得此结点所在路径的所有结贴名称 nodename = Trim(tvMenus.SelectedItem.key)
TechnoFantasy 2003-10-17
  • 打赏
  • 举报
回复
问题已经回答:
http://expert.csdn.net/Expert/topic/2364/2364307.xml?temp=.9630701

1,451

社区成员

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

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