C#无标题栏窗体鼠标拖动

来源:互联网 发布:管家婆软件客户端 编辑:程序博客网 时间:2024/06/05 05:04

实现没有标题栏的窗体拖动,获取窗体位置、鼠标位置,判断是否鼠标是否按下,以及鼠标是否在窗体内部,即可实现。

public partial class Form1 : Form    {        Point mousePosition;        Point formPosition;        bool isMouseDown = false;//是否按下        bool isMouseIn = false;//是否在窗体内        public Form1()        {            InitializeComponent();        }        //鼠标按下        private void Form1_MouseDown(object sender, MouseEventArgs e)        {            isMouseDown = true;            mousePosition = Control.MousePosition;  //鼠标位置            formPosition = this.Location;   //窗体左上角位置        }        private void Form1_MouseUp(object sender, MouseEventArgs e)        {            isMouseDown = false;        }        private void Form1_MouseMove(object sender, MouseEventArgs e)        {            Point mousePoint = Control.MousePosition;   //移动的位置            if (isMouseDown&&isMouseIn)                this.Location = new Point(mousePoint.X - mousePosition.X + formPosition.X, mousePoint.Y - mousePosition.Y + formPosition.Y);        }        private void Form1_MouseEnter(object sender, EventArgs e)        {            isMouseIn = true;        }        private void Form1_MouseLeave(object sender, EventArgs e)        {            isMouseIn = false;        }    }


原创粉丝点击