Drag and drop the PictureBox

image_pdfimage_print


   


  using System;
  using System.Drawing;
  using System.Collections;
  using System.ComponentModel;
  using System.Windows.Forms;
  using System.Data;

  public class Form1 : System.Windows.Forms.Form
  {
    private bool  isDragging = false;
    private int   currentX, currentY;

    Rectangle dropRect = new Rectangle(180, 180, 60, 60);

    private PictureBox myPictureBox; 

    public Form1()
    {
      InitializeComponent();
      CenterToScreen();

      myPictureBox = new PictureBox();
      myPictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
      myPictureBox.Location = new System.Drawing.Point(64, 32);
      myPictureBox.Size = new System.Drawing.Size(50, 50);
      myPictureBox.Image = new Bitmap("winter.jpg");
      myPictureBox.MouseDown += new MouseEventHandler(myPictureBox_MouseDown);
      myPictureBox.MouseUp += new MouseEventHandler(myPictureBox_MouseUp);
      myPictureBox.MouseMove += new MouseEventHandler(myPictureBox_MouseMove);
      myPictureBox.Cursor = Cursors.Hand;

      Controls.Add(myPictureBox);
    }
    private void InitializeComponent()
    {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Text = "Dragging Images";
      this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
    }

    static void Main() 
    {
      Application.Run(new Form1());
    }
    private void myPictureBox_MouseDown(object sender, MouseEventArgs e) 
    {
      isDragging = true;

      currentX = e.X;
      currentY = e.Y;
    }

    private void myPictureBox_MouseMove(object sender, MouseEventArgs e) {
      if (isDragging) {
        myPictureBox.Top = myPictureBox.Top + (e.Y - currentY);
        myPictureBox.Left = myPictureBox.Left + (e.X - currentX);
      }
    }
    private void myPictureBox_MouseUp(object sender, MouseEventArgs e) 
    {
      isDragging = false;
      Console.WriteLine(dropRect.Contains(myPictureBox.Bounds));
    }

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Graphics g = e.Graphics;
      g.FillRectangle(Brushes.AntiqueWhite, dropRect);

      g.DrawString("Drag and drop the image here.", new Font("Times New Roman", 8), Brushes.Red, dropRect);
    }
  }