我有一个奇怪的问题。让我们看一下这段代码:

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


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

(它不起作用!)

(例如(我知道我不需要使用TreeView1.FindNode()方法,但我= -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

最佳答案

似乎.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


希望能帮助到你!

10-08 05:56