全面掌握C#中的拖放操作
http://www.uncj.net/news/show.aspx?id=60

解决方案 »

  1.   

    http://www.codeproject.com/useritems/TreeDragnDropDemo.asp
    两个treeview之间:
    http://www.syncfusion.com/FAQ/WinForms/FAQ_c91c.asp
      

  2.   

    为什么实现托动时,鼠标移动在treeView之间,其相应结点得不到焦点,
    也没有背景出现在鼠标所在的结点上,其实这个被选中的节点不是当前
    鼠标所在的结点,这就造成托动不能达到预其的效果,是怎么回事呢有在一个控件上treeview托动的参考代码吗,要不我把我的代码给贴出来。
      

  3.   

    private void treeView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
    //获得进行"Drag"操作中拖动的字符串
    string dummy = "temp";
    string  s =( string )e.Data.GetData(dummy.GetType());
    s = s.Substring(s.IndexOf( ":" )+ 1).Trim();
    Point Position=new Point(0,0);
    Position.X  = e.X;
    Position.Y  = e.Y;
    Position=treeView1.PointToClient(Position);
    TreeNode DropNode=this.treeView1.GetNodeAt(Position);
    //在目标组件中加入以此字符串为标题的项目
    if(DropNode!=null)
    {
    TreeNode DragNode=new TreeNode(s);
    treeView1.Nodes.Insert(DropNode.Index+1,DragNode);
    }
    } private void treeView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
    if(e.Data.GetDataPresent(DataFormats.Text ))
    {
    e.Effect =DragDropEffects.Move;
    }
    else
    {
    e.Effect =DragDropEffects.None ;
    }
    } private void treeView1_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e)
    {
    string strItem=e.Item.ToString ();
    this.treeView1.DoDragDrop (strItem,System.Windows.Forms.DragDropEffects.Move );
    }