急,treeview节点问题,谢谢各位高手!

pantung 2005-06-30 08:23:02
vb6中treeview+msxml3的节点问题 :
---------------------
实现添加,删除操作,结果储存在xml中
问题
1> 有无其它方式做treeview的节点问题,实现添加,保存,删除
2> 先帮忙请看这段代码
实现添加,删除节点操作,以下是xml保存情况(test)
<NODES>
<NODE Caption="tw" Key="pp" Tag="" ParentKey=""/>
<NODE Caption="soft" Key="child01" Tag="" ParentKey="pp"/>
<NODE Caption="word" Key="child02" Tag="" ParentKey="pp"/>
<NODE Caption="tw1" Key="tw1" Tag="" ParentKey=""/>
<NODE Caption="1001" Key="child3" Tag="" ParentKey="pp1"/>
<NODE Caption="1002" Key="child4" Tag="" ParentKey="pp1"/>
<NODE Caption="1003" Key="child6" Tag="" ParentKey="pp1"/>
<NODE Caption="1004" Key="child7" Tag="" ParentKey="pp1"/>
<NODE Caption="tw2" Key="tw2" Tag="" ParentKey=""/>
<NODE Caption="2001" Key="child8" Tag="" ParentKey="pp2"/>
<NODE Caption="2002" Key="child10" Tag="" ParentKey="pp2"/>
<NODE Caption="2003" Key="child11" Tag="" ParentKey="pp2"/>
<NODE Caption="2004" Key="child12" Tag="" ParentKey="pp2"/>
</NODES>
-----------------------
删除节点后,重新读取xml为:
<NODES>
<NODE Caption="tw" Key="pp" Tag="" ParentKey=""/>
<NODE Caption="soft" Key="child01" Tag="" ParentKey="pp"/>
<NODE Caption="word" Key="child02" Tag="" ParentKey="pp"/>
<NODE Caption="tw1" Key="tw1" Tag="" ParentKey=""/>
<NODE Caption="1001" Key="child3" Tag="" ParentKey="pp1"/>

<NODE Caption="1003" Key="child6" Tag="" ParentKey="pp1"/>
<NODE Caption="1004" Key="child7" Tag="" ParentKey="pp1"/>
<NODE Caption="tw2" Key="tw2" Tag="" ParentKey=""/>
<NODE Caption="2001" Key="child8" Tag="" ParentKey="pp2"/>
<NODE Caption="2002" Key="child10" Tag="" ParentKey="pp2"/>
<NODE Caption="2003" Key="child11" Tag="" ParentKey="pp2"/>
<NODE Caption="2004" Key="child12" Tag="" ParentKey="pp2"/>
</NODES>
---------------------------------
以下是添加command的代码:
Private Sub Command1_Click()
If Txt0.Text <> "" And Txt1.Text <> "" Then '不允许建立零字节的父节点和子节点
CunZai = False
J = SmartTreeView.Nodes.Count
For I = 1 To SmartTreeView.Nodes.Count '检查新输入的父节点名称是否存在
'If SmartTreeView.SelectedItem.children > 1 Then
If Txt0.Text = SmartTreeView.Nodes(I).Text Then CunZai = True
'End If
Next I
If CunZai = True Then '若存在, 则在父节点下建立子节点

Set nodx = SmartTreeView.Nodes.Add(Txt0.Text, tvwChild, "child" & J, Txt1.Text, 3)
Else '若不存在,则建立父节点和子节点

Set nodx = SmartTreeView.Nodes.Add(, , Txt0.Text, Txt0.Text, 1)
Set nodx = SmartTreeView.Nodes.Add(Txt0.Text, tvwChild, "child" & J, Txt1.Text, 3)
End If
SmartTreeView.Refresh
ElseIf Txt0.Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
'系统提示
ElseIf Txt1.Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
End If
End Sub

问题:
当comamnd删除中间一子节点,则不能添加子节点(为什么),比如删除的节点为
<NODE Caption="1002" Key="child4" Tag="" ParentKey="pp1"/>
当comamnd删除最末一子节点,则添加,删除情况正常。

同样父节点也出现这个问题,为什么?
----------------------
请指点,小弟谢过。


...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
crycoming 2005-07-05
  • 打赏
  • 举报
回复
让key唯一,只要做个计数器,如J在添加一个节点后就加一
pantung 2005-07-03
  • 打赏
  • 举报
回复
报错是key 不唯一。 要怎么解决?谢谢
pantung 2005-07-01
  • 打赏
  • 举报
回复
情况是,删了child1到child10(比如)中任何一个节点,当父节点存在,在建立一个子节点,就报Set nodx = SmartTreeView.Nodes.Add(Txt0.Text, tvwChild, "child" & J, Txt1.Text, 3) 这句错误。
-------------
想不通,请各位帮帮小弟,提醒下怎么回事?多谢,多谢了,已经发了两贴了。

1,451

社区成员

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

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