以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这段代码有啥问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57862)

--  作者:blackzhu
--  发布时间:2014/10/6 10:49:00
--  这段代码有啥问题
 If e.Node.Checked = True
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If  nd.text.IndexOf(e.node.text)>=0  Then
MessageBox.Show("存在")
            trv.Nodes.Remove(trv.Nodes(E.node.text))
        End If
    Next
End If

提示没有实例

--  作者:有点甜
--  发布时间:2014/10/6 10:52:00
--  
 代码没有问题,是不是trv那里错了?
--  作者:blackzhu
--  发布时间:2014/10/6 10:54:00
--  
不应该呀,测试下来 是这个情况


我有两层节点 0 和 1 

勾选0节点  可以删除全部的节点  勾选 1 节点 就出错  


但是代码是部分层次的呀
[此贴子已经被作者于2014-10-6 10:59:22编辑过]

--  作者:有点甜
--  发布时间:2014/10/6 10:58:00
--  
 例子发上来。
--  作者:有点甜
--  发布时间:2014/10/6 11:00:00
--  

 那你就这样改

 

If e.Node.Checked = True
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If  nd.text.IndexOf(e.node.text)>=0  Then
            MessageBox.Show("存在")
            trv.Nodes.Remove(nd)
        End If
    Next
End If


--  作者:blackzhu
--  发布时间:2014/10/6 11:01:00
--  
例子:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:弹窗demo.table



--  作者:有点甜
--  发布时间:2014/10/6 11:01:00
--  

 或者

 

If e.Node.Checked = True
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If  nd.text.IndexOf(e.node.text)>=0  Then
            MessageBox.Show("存在")
            nd.Delete
        End If
    Next
End If

 


--  作者:blackzhu
--  发布时间:2014/10/6 11:09:00
--  
可以了,是不是这个有bug呀
--  作者:有点甜
--  发布时间:2014/10/6 11:12:00
--  
 有可能是你的Name和Text不一样,导致trv.Nodes(e.node.text)找不到对应的节点
--  作者:blackzhu
--  发布时间:2014/10/6 12:17:00
--  
不可能的,我手工就做了两个测试的节点而已