SSISO Community

갤러리정

Drag and drop the PictureBox

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);
        }
    }

823 view

4.0 stars