| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1942 人关注过本帖
标题:关于treeview的节点,如何将数组保存到选择的节点中
只看楼主 加入收藏
g414161696
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-8-10
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:4 
关于treeview的节点,如何将数组保存到选择的节点中
解释一下我要表达的意思:
如:我现在有一个父节点,要在此节点下面加入子节点
现在每添加一个子节点,便将这个子节点对应的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
搜索更多相关主题的帖子: 如何 
2012-08-10 16:59
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
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

授人于鱼,不如授人于渔
早已停用QQ了
2012-08-10 17:57
g414161696
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-8-10
收藏
得分:0 
回复 2楼 风吹过b
你这个方法很好,我那种方法是不是可行度不高?
2012-08-10 22:38
g414161696
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-8-10
收藏
得分:0 
回复 2楼 风吹过b
对于这个节点的问题,我这边由于需要,还有一个过程要问,请帮忙,
我想的过程是:将数据库中的一些id保存到treeview的某个节点中,这样,当每次电机这个节点时,就能对应的显示这些id对应的数据。
2012-08-13 11:44
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
节点的ID 是可以指定的。除下 index 外,还可以有 key 属性。KEY属性,可以用数据库中的 ID 来。

如 数据库中有一些数据如下:
ID 上级ID 内容
1  0  t1
2 1 t11
3 1 t12
4 3 t121
5 0 t2

那么你添加时的命令是:

if rs("上级id")=0 then
   Set nodX = TreeView1.Nodes.Add(,,"R" & rs("id") ,rs("内容") )
else
   Set nodX = TreeView1.Nodes.Add("R" & rs("上级id"),tvwChild,"R" & rs("id"),rs("内容"))
end if
每个节点的 KEY 为 R+ID 。KEY不能使用纯数字。

授人于鱼,不如授人于渔
早已停用QQ了
2012-08-13 16:29
快速回复:关于treeview的节点,如何将数组保存到选择的节点中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017362 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved