TreeNode.Remove不起作用!

时间:2009-11-22 12:24:53

标签: asp.net treeview

我有一个奇怪的问题。我们来看看那段代码:

TreeNode tn = TreeView1.FindNode("2009/08/12 (1)");     //OK, the Node is found

现在,我需要删除该节点:

(它不工作!)

(例如(我知道我不需要使用TreeView1.FindNode()方法,但 i = -1 ))

            TreeNode tn1 = TreeView1.FindNode(tn.ValuePath);
            int i = TreeView1.Nodes.IndexOf(tn1);

            TreeView1.Nodes.Remove(tn);

问题是,上面的代码不起作用,我的意思是,节点没有删除,为什么? TreeView看起来像这样:

alt text http://img130.imageshack.us/img130/230/71970321.png

2 个答案:

答案 0 :(得分:8)

.net中的TreeView控件似乎只允许删除一级节点,因此如果您尝试删除的节点不是这种节点,则需要通过其父节点将其删除,使用如下所示:

Dim Padre As TreeNode = TreeView1.SelectedNode.Parent
If (Padre Is Nothing) Then
    TreeView1.Nodes.Remove(TreeView1.SelectedNode)
Else
    Padre.ChildNodes.Remove(TreeView1.SelectedNode)
End If

希望它有所帮助!

答案 1 :(得分:0)

您确定已正确选择了节点吗?如果TreeView1.Nodes.IndexOf(tn1)返回 -1 ,则表示找不到该节点。