同一根下的多个节点,我想通过鼠标拖拽的方式把排在某一位置的节点拖拽到其他节点是上面,我现在实现拖拽后,拖拽的节点都加到最后,怎么实现排序呢?在VB下在添加新节点时有个Position,.net下怎么实现????

解决方案 »

  1.   

    private void treeViewStructure_DragEnter( object sender , DragEventArgs e )
            {
                if ( e.Data.GetDataPresent(typeof(TreeNode)) )
                    e.Effect = DragDropEffects.Move;
                else
                    e.Effect = DragDropEffects.None;        }
            private void treeViewStructure_DragDrop( object sender , DragEventArgs e )
            {
                TreeNode myNode = null;
                if ( e.Data.GetDataPresent(typeof(TreeNode)) )
                {
                    myNode = (TreeNode)( e.Data.GetData(typeof(TreeNode)) );
                }
                Point Position = treeViewStructure.PointToClient(new Point(e.X , e.Y));
                TreeNode DropNode = treeViewStructure.GetNodeAt(Position);
                if ( DropNode != null && DropNode.Parent != myNode && DropNode!=myNode)
                {
                    TreeNode DragNode = myNode;
                    myNode.Remove();
                    DropNode.Nodes.Add(DragNode);
                }
            }
            private void treeViewStructure_ItemDrag( object sender , ItemDragEventArgs e )
            {
                DoDragDrop(e.Item , DragDropEffects.Move);
            }
      

  2.   

    to: sskset(断点)
    上述代码是把拖拽的节点放到目标节点的下一级了,我是说如何把拖拽节点放到目标节点的上面,拖拽节点和目标节点是同一父节点,只是调整了排列的顺序
      

  3.   

    to: sskset(断点)
    上述代码是把拖拽的节点放到目标节点的下一级了,我是说如何把拖拽节点放到目标节点的上面,拖拽节点和目标节点是同一父节点,只是调整了排列的顺序
    ********************************************************
    自己把節點調整一下就好了.
      

  4.   

    你把这一段调整一下就好了啊if ( DropNode != null && DropNode.Parent != myNode && DropNode!=myNode)
                {
                    TreeNode DragNode = myNode;
                    myNode.Remove();
                    DropNode.Nodes.Add(DragNode);
                }