![]() |
#2
风吹过b2012-08-10 17:57
MSDN 上的一个示例,你研究一下吧。是针对你这个问题。
Children 属性示例 这个例子在 TreeView 控件中放置几个 Node 对象。这组代码检查 Node 是否有子节点。如果有,则显示子节点的文本。为试用此例,在窗体上安放一个 TreeView 控件,并在窗体的声明部分中粘贴下面的代码。运行此例,单击 Node 对象以选择它,然后单击该窗体来察看 Node 对象的子节点的文本。 ![]() Option Explicit Private Sub Form_Click() Dim strC As String Dim N As Integer If TreeView1.SelectedItem.Children > 0 Then '有子节点。 '获取第一个子节点的文本,并将 N 设置为它的索引值。 strC = TreeView1.SelectedItem.Child.Text & vbLF N = TreeView1.SelectedItem.Child.Index '若 N 不是子节点的最后相邻节点的索引, '则获取下一个相邻节点的文本。 While N <> TreeView1.SelectedItem.Child.LastSibling.Index strC = strC & TreeView1.Nodes(N).Next.Text & vbLF '重置 N 为下一个相邻节点的索引。 N = TreeView1.Nodes(N).Next.Index Wend '显示结果。 MsgBox "Children of " & TreeView1.SelectedItem.Text & _ " are: " & vbLF & strC Else '没有子节点。 MsgBox TreeView1.SelectedItem.Text & " has no children" End If End Sub Private Sub Form_Load() TreeView1.BorderStyle = 1 '确保边界是可视的。 Dim nodX As Node Set nodX = TreeView1.Nodes.Add(,,"d","Dates") Set nodX = TreeView1.Nodes.Add("d",tvwChild,"d89","1989") Set nodX = TreeView1.Nodes.Add("d",tvwChild,"d90","1990") '创建 1989 节点的子节点。 Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"John") Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Brent") Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Eric") Set nodX = TreeView1.Nodes.Add("d89",tvwChild, ,"Ian") nodX.EnsureVisible '显示所有节点。 '创建 1990 节点的子节点。 Set nodX = TreeView1.Nodes.Add("d90",tvwChild, ,"Randy") Set nodX = TreeView1.Nodes.Add("d90",tvwChild, ,"Ron") nodX.EnsureVisible '显示所有节点。 End Sub |
解释一下我要表达的意思:
如:我现在有一个父节点,要在此节点下面加入子节点
现在每添加一个子节点,便将这个子节点对应的key,保存到它的父节点的某个变量中的数组中,我本来想用tag,发现好像不行。
目的是为了以后点击父节点的时候,能将这些对应的key的子节点,对应的显示在旁边的Listview中。
我现在想问的就是 父节点中的哪个变量可以保存数组,请告诉我保存数组的代码。
我把我编写的发下面 请各位指教:
Sub duiyingjiedian() ’对应节点函数
If TreeView1.SelectedItem.Parent.Tag = 0 Then '如果父节点中没有保存数据,则将动态数组重定义为dyjd(0)
zjds = 0
ReDim dyjd(zjds)
dyjd(zjds) = keyword '将对应的key保存到数组中 Keyword前面已经指定
TreeView1.SelectedItem.Parent.Tag = dyjd(zjds) '将数组保存到tag中;此失败
zjds = zjds + 1 '数组往后移一个位置
Else:
zjds = UBound(dyjd, 1) ’当父节点已经有数据,则返回已经存在的子节点的key的总数,并重新定义为dyjd(zjds)\
ReDim Preserve dyjd(zjds)
dyjd(zjds) = TreeView1.SelectedItem.Key
zjds = zjds + 1
End If
End Sub