title: Treeview drag and drop without destination node
body: <p>I have two <code>TreeView</code> which are in seperate forms.</p>
  
  <ul>
  <li><code>treeView1</code></li>
  <li><code>treeView2</code></li>
  </ul>
  
  <p>I  implemented a <code>Drag and Drop</code> functionality so that I can drag from on tree to another and it works fine with the code I found <a href="http://support.microsoft.com/kb/307968" rel="nofollow noreferrer">here</a> where I have to handle 3 events.</p>
  
  <p>The thing is the setup of my windows looks like this :</p>
  
  <p><img src="https://i.stack.imgur.com/DaPbc.png" alt="enter image description here"></p>
  
  <p>As you can see, <code>Window2</code> hides my <code>Window1</code> and <strong>it's on purpose and needs to stay like this</strong>. The problem is my <code>Drag and Drop</code> is from <code>Window2</code> to <code>Window1</code> so I can't specify a destination node. Is there a way to simply drop into a <code>TreeView</code> without any destination node and say create a parent node next to the other ones ?</p>
  
  <hr>
  
  <p>Links die examples don't :</p>
  
  <pre><code>private void Form1_Load(object sender, System.EventArgs e)
  {
      this.treeView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag);
      this.treeView2.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView_ItemDrag);
      this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter);
      this.treeView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView_DragEnter);
      this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop);
      this.treeView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView_DragDrop);   
  }
  
  private void treeView_ItemDrag(object sender,
          System.Windows.Forms.ItemDragEventArgs e)
  {
      DoDragDrop(e.Item, DragDropEffects.Move);
  }
  
  private void treeView_DragEnter(object sender,
          System.Windows.Forms.DragEventArgs e)
  {
      e.Effect = DragDropEffects.Move;
  }
  
  private void treeView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
  {
      TreeNode NewNode;
  
      if(e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false))
      {
          Point pt = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
          TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);
              NewNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
          if(DestinationNode.TreeView != NewNode.TreeView)
          {     
              DestinationNode.Nodes.Add((TreeNode) NewNode.Clone());
              DestinationNode.Expand();
              //Remove Original Node
              NewNode.Remove();
          }
      }
  }
  </code></pre>