20.3 How can I drag file names from Windows Explorer and drop them into a listbox?     Place a ListBox on your form, set its AllowDrop property and handle both DragEnter and DragDrop as below. 
 
     private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
 
     { 
 
          if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
 
               e.Effect = DragDropEffects.All; 
 
          else 
 
               e.Effect = DragDropEffects.None; 
 
     } 
  
     private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) 
 
     { 
 
          string[] files = (string[])e.Data.GetData("FileDrop", false); 
 
          foreach (string s in files) 
 
          { 
 
               //just filename 
 
               listBox1.Items.Add(s.Substring(1 + s.LastIndexOf(@"\"))); 
  
               //or fullpathname 
 
               //     listBox1.Items.Add(s); 
 
          } 
 
     } 

解决方案 »

  1.   

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    Graphics g = e.Graphics;
    g.DrawImage(bitmap , new Rectangle(0, 0, 700,500),0,0, bitmap.Width, bitmap.Height,GraphicsUnit.Pixel);
    } private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    Rectangle r = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
    if(r.Contains(new Point(e.X, e.Y)))
    {
    DoDragDrop(bitmap, DragDropEffects.Copy);
    }
    } private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
    {
    if(e.Data.GetDataPresent(typeof(Bitmap)))
    {
    e.Effect = DragDropEffects.Copy;
    }
    else
    {
    e.Effect = DragDropEffects.None;
    }
    } private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
    object data = e.Data.GetData(typeof(Bitmap));
    if(data != null)
    {
    bitmap = (Bitmap)data;
    this.Invalidate(this.ClientRectangle);
    }
    }

    }
    你参考一下!给你个拖放图像的例子!希望对你有帮助!