vb6中treeview+msxml3的节点问题

pantung 2005-06-23 11:01:45
实现添加,删除节点操作,以下是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>
-----------------------
当comamnd删除中间一节点,则不能添加子节点,比如删除的节点为
<NODE Caption="1002" Key="child4" Tag="" ParentKey="pp1"/>
当comamnd删除最末一节点,则情况正常。
删除节点后,重新读取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
--------------------
请指教小弟,第一次用vb6 汗~~
...全文
91 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
panl82 2005-08-16
  • 打赏
  • 举报
回复
让key唯一,只要做个计数器,如J在添加一个节点后就加一
panl82 2005-08-16
  • 打赏
  • 举报
回复
节点添加有问题
pantung 2005-06-24
  • 打赏
  • 举报
回复
再谢过
pantung 2005-06-23
  • 打赏
  • 举报
回复
请各位前辈指点下,多谢!
pantung 2005-06-23
  • 打赏
  • 举报
回复
忘指点下,还是这个添加command 的思路有问题?再下谢过!

1,451

社区成员

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

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