جا به جا کردن یک کنترل با استفاده از ماوس در زمان اجرا

در سی شارپ می توان در زمان اجرای برنامه کنترل ها را جا به جا نمود. در این پست به شما نحوه جا به جا کردن یک کنترل PictureBox (به عنوان مثال) را آموزش می دهیم. یک برنامه ویندوزی ایجاد کرده و یک کنترل PictureBox بر روی آن قرار دهید،خاصیت BorderStyle آن را به Fixed3D تغییر داده و کدهای زیر را به رویدادهای Mousemove و MouseDown آن اضافه کنید :

using System.Drawing;
using System.Windows.Forms;

namespace moveControl
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Point MouseDownLocation;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                pictureBox1.Left = e.X + pictureBox1.Left - MouseDownLocation.X;
                pictureBox1.Top = e.Y + pictureBox1.Top - MouseDownLocation.Y;
            }
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                MouseDownLocation = e.Location;
            }
        }
    }
}

حال برنامه را اجرا و با ماوس PicturBox را جا به جا نمایید.