2014-01-14 37 views
0

我有一个Winforms Treeview,其中有几个级别和分支的节点。树中节点的位置很重要。我需要有一些分支未排序,而树视图中的其余节点排序。我还需要能够根据用户输入通过代码打开/关闭排序。关闭TreeView分支的排序

从我能读的和谷歌的winform treeview组件只能被整理排序或未排序。全部或没有。这是正确的,所以我必须自己写分类机制,或者我错过了什么?

回答

1

我不知道忽略树枝当谈到排序,但如果你只是想排序一个分支,你可以试试这个老派的方法:

private void SortBranch(TreeNode parentNode) { 
    TreeNode[] nodes; 
    if (parentNode == null) { 
    nodes = new TreeNode[treeView1.Nodes.Count]; 
    treeView1.Nodes.CopyTo(nodes, 0); 
    } else { 
    nodes = new TreeNode[parentNode.Nodes.Count]; 
    parentNode.Nodes.CopyTo(nodes, 0); 
    } 
    Array.Sort(nodes, new TreeSorter()); 
    treeView1.BeginUpdate(); 
    if (parentNode == null) { 
    treeView1.Nodes.Clear(); 
    treeView1.Nodes.AddRange(nodes); 
    } else { 
    parentNode.Nodes.Clear(); 
    parentNode.Nodes.AddRange(nodes); 
    } 
    treeView1.EndUpdate(); 
} 
+0

THX,猜测它是如我所料,我必须自己做=) –