我想遍历的移除未选中的节点.
但是如果用:
for each node1 in treeview1.nodes
if node1.check = false then
treeview1.nodes.remove(node1.key)
end if
next结果会提示错误."控件的集合已经被修改"
怎么有效的解决这个问题.
另外,我也想用这个方法去掉.一级的父节点没有子节点.有没有类似取代的方法.我知道这个肯等测试不过的的原因.自己循环自己当然不行啦,可是treeview只能用for each这种遍历方式.
问一下取代的方法.能解决吗.先copy一份treeview...代码??怎么写啊?我是菜鸟...呵呵.
但是如果用:
for each node1 in treeview1.nodes
if node1.check = false then
treeview1.nodes.remove(node1.key)
end if
next结果会提示错误."控件的集合已经被修改"
怎么有效的解决这个问题.
另外,我也想用这个方法去掉.一级的父节点没有子节点.有没有类似取代的方法.我知道这个肯等测试不过的的原因.自己循环自己当然不行啦,可是treeview只能用for each这种遍历方式.
问一下取代的方法.能解决吗.先copy一份treeview...代码??怎么写啊?我是菜鸟...呵呵.
For IntI = 1 To .Nodes.Count - 1
if .node.selected=false then
.nodes.remove(inti)
end if
next
end with
For IntI = 1 To .Nodes.Count
if .node.selected=false then
.nodes.remove(inti)
end if
next
end with
With treeview1
For IntI = 1 To .Nodes.Count
if .nodes.item(inti).selected=false then
.nodes.remove(inti)
end if
next
end with
不好意思,手写的,错了
Private Sub Command1_Click()
Dim i As Integer
For i = TreeView1.Nodes.Count To 1 Step -1
If TreeView1.Nodes(i).Checked = False Then
TreeView1.Nodes.Remove i
End If
Next
End SubPrivate Sub Form_Load()
TreeView1.Nodes.Add , , "A", "A"
TreeView1.Nodes.Add , , "B", "B"
TreeView1.Nodes.Add , , "C", "C"
TreeView1.Nodes.Add , , "D", "D"
End Sub
If TreeView1.Nodes(i).Checked = False Then
TreeView1.Nodes.Remove i
End If
Next
End Sub