C# WinForm 实现控件可拖拽


实现的功能:WinForm窗体中让控件可以随便拖动;类似于BS中弹出可拖动的层一样;


 界面如图:

 

直接上代码:
namespace DropControlDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private bool isMouseDown = false;
        private Point mouseOffset; //记录鼠标指针的坐标

        private void pan_Drop_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOffset.X = e.X;
                mouseOffset.Y = e.Y;
                isMouseDown = true;
            }
        }

        private void pan_Drop_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                int left = pan_Drop.Left + e.X - mouseOffset.X;
                int top = pan_Drop.Top + e.Y - mouseOffset.Y;
                pan_Drop.Location = new Point(left, top);
            }
        }

        private void pan_Drop_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = false;
            }
        }
    }
}

 附件例子下载:猛击下载

原文地址:https://www.cnblogs.com/jsonzheng/p/2468489.html