WinForms中设置窗体随鼠标移动

在我以前学习WinForms的时候,用到过使窗体随鼠标的随意移动,

当鼠标在窗体的任意位置按下(指的不是窗体的标题栏),按住鼠标不松手,然后移动鼠标到任意位置,可以实现窗体跟随鼠标移动。

以下是实现这种小效果的简单的C#代码:   

       //首先设置窗体的FormBorderStyle为None,隐藏标题栏和边框
       //这段代码可以实现窗体的双击时自动关闭

        private Point mouseOffset;
        private bool isMouseDown = false;        
        public Form1()
        {
            InitializeComponent();
        }

        //鼠标松开时的处理事件

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

        //鼠标在窗体任意位置按下时的处理事件

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

       //双击窗体时,窗体关闭

        private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Close();
            Application.Exit();
        }

       //移动鼠标时,窗体随之移动

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
            Point mousePos = Control.MousePosition;
            mousePos.Offset(mouseOffset.X, mouseOffset.Y);
            this.Location = mousePos;
            }
        }
可以试试,比较简单的代码。

posted @ 2011-04-22 14:42  Sue_娜  阅读(710)  评论(0编辑  收藏  举报