//通过递归的方法遍历treeview,将节点信息存入到Fteventlist里
        public void bianlitreeview(TreeNodeCollection rootNodes)
        {
            foreach (TreeNode TNode in rootNodes)
            {
                bianlitreeview(TNode.Nodes);//递归
                Fteventlist.Add(TNode);
            }
        }以上是我遍历treeview时的代码,可是当我删除树的节点,只剩下一个根节点的时候,遍历出来的结果总是有问题,不仅之前删除的节点还能遍历到,而且也有重复,这是什么原因呢?以下是我删除节点所用的代码,求高人指导!        private void button7_Click(object sender, EventArgs e)//删除节点按钮
        {
            TreeNode selectedNode = this.treeView1.SelectedNode;            
            TreeNode parentNode = selectedNode.Parent;
            parentNode.Nodes.Remove(selectedNode);
            this.treeView1.Select();
        }

解决方案 »

  1.   

    public class Fteventlistlevelcompare : IComparer//实现用接口按照故障层次排序
            {
                public int Compare(object x, object y)
                {
                    return new CaseInsensitiveComparer().Compare(((TreeNode)x).Level, ((TreeNode)y).Level);
                }
            }我觉得可能是排序算法出了问题那位大神能帮我看看这个算法哪里出问题了?第一遍排序的结果是正确的,但是在执行一遍,排序结果就不对了