如何删除TREEVIEW一节点的所有子节点

tercel001 2004-07-15 01:51:46
谢谢了
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LichKingSZ 2004-07-15
  • 打赏
  • 举报
回复
这样做,node的排列会改变
anosoft 2004-07-15
  • 打赏
  • 举报
回复
最简单的办法:先记录下k2这个node的信息,然后用nodes.remove "k2"删除调这个k2这个node,这样其子node也都没了,然后在add回原先的k2这个node;
LichKingSZ 2004-07-15
  • 打赏
  • 举报
回复
方法一:
Private Sub Form_Load()

With TreeView1.Nodes

.Add , , "r", "root"
.Add "r", tvwChild, "c1", "c1"
.Add "r", tvwChild, "c2", "c2"

End With

End Sub

Private Sub Command1_Click()

Dim i&
Dim n As Node

Set n = TreeView1.Nodes("r").Child

For i = 1 To TreeView1.Nodes("r").Children - 1

TreeView1.Nodes.Remove n.Next.Index

Next

TreeView1.Nodes.Remove n.Index

Set n = Nothing

End Sub
anosoft 2004-07-15
  • 打赏
  • 举报
回复
'删除某一结点的所有子结点
Public Sub TreeView_DeleteChildNode(tvw As TreeView, ByVal vKey As String)
Dim nNode As Node, nNode1 As Node, nKey() As String, i As Integer

Set nNode = tvw.Nodes(vKey)
If nNode.Children = 0 Then Exit Sub

Set nNode1 = nNode.Child
i = 0
Do While Not nNode1 Is Nothing
ReDim Preserve nKey(i)
nKey(i) = nNode1.Key
Set nNode1 = nNode.Next
i = i + 1
Loop

For i = 0 To UBound(nKey())
Call tvw.Nodes.Remove(nKey(i))
Next i
End Sub

1,453

社区成员

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

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