title: Enhanced features with Drag and Drop from Treeview to Textbox in WinForms
body: <p>I have the following code that successfully drags and drops a treeview node to a textbox in a WFA:</p>
  
  <pre><code>private void _MyTreeView_ItemDrag(object sender, ItemDragEventArgs e)
  {
      DoDragDrop(e.Item.ToString(), DragDropEffects.Copy);
  }
  
  private void textBox1_DragEnter(object sender, DragEventArgs e)
  {
      e.Effect = DragDropEffects.Copy;
  }
  
  private void textBox1_DragDrop(object sender, DragEventArgs e)
  {
      if (e.Data.GetDataPresent(typeof(System.String)))
      {
          textBox1.Text += (System.String)e.Data.GetData(typeof(System.String));
      }
  }
  </code></pre>
  
  <p>but I wanted to be able to do a few other things with the drag and drop.</p>
  
  <p>(1) If the node I'm dragging to the textbox has a Text property value of 'MyTreeNode', then the value that appears in the textbox is 'TreeNode: MyTreeNode' and not 'MyTreeNode' i.e. it adds 'TreeNode: ' at the start. How can I fix this?</p>
  
  <p>(2) Is there someway I can prevent all TreeNodes at the root level from being dragged and dropped?</p>
  
  <p>(3) With the code I have above, when I drag and drop a treenode the treenode text is appended to the end of the text that is already in the textbox. Am I able to add a 'drop cursor'(i dont know what you would call it) and have the treenode dropped at the position its actually dropped i.e. the position of the cursor?</p>