本帖最后由 java123object 于 2011-10-24 17:21:21 编辑

解决方案 »

  1.   

    怎么会无法获得排序后的内容呢???
    想办法把你排序后的内容得到,就根据treeView对象得到的,或者其相关对象(Model等等)
    然后把这些内容存入数据库。。
      

  2.   


    排序前treeView1.Nodes

    排序后 treeView1.Nodes结果一样!现在就是获取不到最新的排序结果!
      

  3.   

    private void treeview1_ItemDrag(object sender, ItemDragEventArgs e)
      {
      }
      private void treeview1_DragEnter(object sender, DragEventArgs e)
      {
      }
      private void treeview1_DragDrop(object sender, DragEventArgs e)
      {}
    拖动移动节点
    节点移动http://topic.csdn.net/u/20080818/16/529d7b19-88d0-4f1c-be23-ca93d69bd478.html
      

  4.   


    using System;   
    using System.Collections.Generic;   
    using System.Text;   
    using System.Windows.Forms;   
    using System.Collections;   
      
    namespace NodeMove   
    {   
        class NodeMove   
        {   
            private void MovUp(TreeNode ObjNode)   
            {   
                //----节点的向上移动   
                if (ObjNode != null)   
                {   
                    TreeNode newnode = new TreeNode();   
                    //--------如果选中节点为最顶节点   
                    if (ObjNode.Index == 0)   
                    {   
                        //-------------   
                    }   
                    else if (ObjNode.Index != 0)   
                    {   
                        newnode = (TreeNode)ObjNode.Clone();   
                        //-------------若选中节点为根节点   
                        if (ObjNode.Level == 0)   
                        {   
                            treeView1.Nodes.Insert(ObjNode.PrevNode.Index, newnode);   
                        }   
                        //-------------若选中节点并非根节点   
                        else if (ObjNode.Level != 0)   
                        {   
                            ObjNode.Parent.Nodes.Insert(ObjNode.PrevNode.Index, newnode);   
                        }   
                        ObjNode.Remove();   
                        ObjNode = newnode;   
                    }   
      
                }   
            }   
      
            private void MovDown(TreeNode ObjNode)   
            {   
                //----节点的向下移动   
                if (ObjNode != null)   
                {   
                    TreeNode newnode = new TreeNode();   
                    //-------------如果选中的是根节点   
                    if (ObjNode.Level == 0)   
                    {   
                        //---------如果选中节点为最底节点   
                        if (ObjNode.Index == treeView1.Nodes.Count - 1)   
                        {   
                            //---------------   
                        }   
                        //---------如果选中的不是最底的节点   
                        else  
                        {   
                            newnode = (TreeNode)ObjNode.Clone();   
                            treeView1.Nodes.Insert(ObjNode.NextNode.Index + 1, newnode);   
                            ObjNode.Remove();   
                            ObjNode = newnode;   
      
                        }   
                    }   
                    //-------------如果选中节点不是根节点   
                    else if (ObjNode.Level != 0)   
                    {   
                        //---------如果选中最底的节点   
                        if (ObjNode.Index == ObjNode.Parent.Nodes.Count - 1)   
                        {   
                            //-----------   
                        }   
                        //---------如果选中的不是最低的节点   
                        else  
                        {   
                            newnode = (TreeNode)ObjNode.Clone();   
                            ObjNode.Parent.Nodes.Insert(ObjNode.NextNode.Index + 1, newnode);   
                            ObjNode.Remove();   
                            ObjNode = newnode;   
                        }   
                    }   
      
                }   
            }   
      
            private void MovLeft(TreeNode ObjNode)   
            {   
                //-----节点向左移动(即成为原父节点的同级节点)   
                if (ObjNode != null)   
                {   
                    TreeNode newnode = new TreeNode();   
                    //-----如果接点是根节点   
                    if (ObjNode.Parent == null)   
                    {   
                        //---------   
                    }   
                    //-----如果选中节点不是根节点   
                    else  
                    {   
                        newnode = (TreeNode)ObjNode.Clone();   
                        //-----如果选中的节点是第一级子节点   
                        if (ObjNode.Level == 1)   
                        {   
                            treeView1.Nodes.Insert(ObjNode.Parent.Index + 1, newnode);   
                        }   
                        else  
                        {   
                            ObjNode.Parent.Parent.Nodes.Insert(ObjNode.Parent.Index + 1, newnode);   
                        }   
                        ObjNode.Remove();   
                        ObjNode = newnode;   
      
                    }   
                }   
      
            }   
      
            private void MovRight(TreeNode ObjNode)   
            {   
                //-----节点的向右移动(即成为上一个同级节点的最后一个子节点)   
                if (ObjNode != null)   
                {   
                    TreeNode newnode = new TreeNode();   
                    //-----如果节点是叶子节点   
                    if (ObjNode.Nodes.Count == 0 && ObjNode.PrevNode == null)   
                    {   
                        //--------   
                    }   
                    //-----如果节点是第一个根节点   
                    else if (ObjNode.Parent == null && ObjNode.Index == 0)   
                    {   
                        //--------   
                    }   
                    //-----   
                    else  
                    {   
                        newnode = (TreeNode)ObjNode.Clone();   
                        ObjNode.PrevNode.Nodes.Insert(ObjNode.PrevNode.Nodes.Count, newnode);   
                        ObjNode.Remove();   
                        ObjNode = newnode;   
                    }   
                }   
            }   
        }   
    }  
      

  5.   

    就在刚刚自己处理成功了,我的控件是DotNetBar的advTree与TreeView类似,我在这个控件的advTree1_AfterNodeDrop能获取最新的树内容,即拖动后内容,不过还是谢谢ASPNETCHENGXU!