title: Simple Drag & Drop Event Handling problem
body: <p>I am new to using Event Handling in C# .NET, and I am trying to understand the behavior behind some simple code that I am experimenting with. I am working with a more complicated example, but I am hoping I will get a more focused answer if I simplify the example.</p>
  
  <p>I have the following code which defines a main window with a ListBox that is initialized with values, and a panel in the window. I am working with dragging the ListBox Items and dropping them in the panel. To signify that the panel is reading the DragDrop event, I am simply just changing the background color.</p>
  
  <p>My problem is, it is not changing the background color when I drop the values, hence, the DragDrop is not working. I know this is a bit exaggerated, but I am trying to understand why its not working. </p>
  
  <p>Here is the following code that I am using.</p>
  
  <pre><code>     public partial class Form1 : Form
  {
      public Form1()
      {
          InitializeComponent();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
          //Allow Panel to accept dropped values
          this.panel1.AllowDrop = true;
  
          //Initialize ListBox with sample values
          listBox1.Items.Add("First Name");
          listBox1.Items.Add("Last Name");
          listBox1.Items.Add("Phone");
  
          //Setup DragDrop Event Handler - is this correct, or even needed?
          this.panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
      }
  
      private void listBox1_MouseDown(object sender, MouseEventArgs e)
      {
          ListBox box = (ListBox)sender;
          String selectedValue = box.Text;
          DoDragDrop(selectedValue.ToString(), DragDropEffects.Copy);
      }
  
      private void panel1_DragDrop(object sender, DragEventArgs e)
      {
          //Change Background color to signify value has been dropped
          ((Panel)sender).BackColor = Color.Black;
      }
  
  }
  </code></pre>
  
  <p>I realize this is an oversimplified example. If you see what I am doing wrong, then please let me know.
  <br>
  <b>EDIT</b> To give an example of why I am confused, I change this example around to put the dragged ListBox Item text into a Textbox when the DragOver event was fired, and it worked fine, but when I tried to do the same thing when they dropped the values over the textbox, I could not get it to work.</p>