title: Prevent drag and drop outside of the current control (TreeNodes in a TreeView)
body: <p>I'm maintaining a Windows app that has multiple forms in the one window (<code>form1</code>, <code>form2</code>, <code>form3</code>).  I'm treating the other <code>form2</code> and <code>form3</code> as black boxes at the moment.  In <code>form1</code> I have a TreeView, and I'm implementing drag and drop functionality within that TreeView.<br>
  How can I prevent a drop outside of the form1 control?</p>
  
  <p>I'm implementing 3 events handlers:</p>
  
  <pre><code>private void treeView_ItemDrag (...)
  {
      DoDragDrop(e.Item, DragDropEffects.Move);
  } 
  
  private void treeView_DragEvent (...) 
  {
      e.Effect = DragDropEffects.Move;
  }
  
  private void treeView_DragDrop (...)
  {
      //the node move logic here
  }
  </code></pre>
  
  <p><code>form2</code> and <code>form3</code> have a drag and drop relationship between them, so when I drag a node from <code>form1</code> into <code>form3</code> by default it allows the move (bad).  I want to be able to prevent this from the form1 control code.</p>
  
  <p>How can I prevent a drop outside of the <code>form1</code> control?  I've looked at the _DragLeave event, but I'm unsure how to control the operation without the DragEventArgs.</p>