C#设置一个控件可以鼠标拖动

Posted 小大大小

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#设置一个控件可以鼠标拖动相关的知识,希望对你有一定的参考价值。

C#设置一个控件可以鼠标拖动:

新建一个C#项目,

创建一个label控件,

设置label的鼠标按下和抬起事件分别为:label1_MouseDown和label1_MouseUp。

对代码进行如下修改。

    public partial class Form1 : Form
    {
        private Point mouse_offset;
        public Form1()
        {
            InitializeComponent();
        }
        private void label1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Point mousePos = Control.MousePosition;
                mousePos.Offset(mouse_offset.X, mouse_offset.Y);
                ((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos);
            }
        }

        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            mouse_offset = new Point(-e.X, -e.Y);
        }
    }

运行后,就可以拖动label随处移动啦。

以上是关于C#设置一个控件可以鼠标拖动的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForms 用鼠标拖动控件

WPF C#如何使用鼠标使控件可拖动

C#怎么才能实现拖动控件时窗体也跟着移动

C# 在面板周围拖动控件

C# wpf 实现任意控件拖动

C#: 要把容器内的某个控件 在运行后随便拖动,该怎么做啊?