码迷,mamicode.com
首页 > Windows程序 > 详细

拖拽窗体的实现

时间:2017-12-27 18:17:04      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:false   button   sed   int   ati   博客   ack   and   screen   

之前做的项目,趁机总结一下新学到的技能

C#拖拽窗体的实现

首先设置FormBorderStyle为none,设置topmost为true(显示为最顶层窗体)。接下来,主要是三个鼠标事件的处理,以下,具体说明如何实现。

局部成员声明。

    private Point ptMouseCurrrnetPos, ptMouseNewPos,ptFormPos, ptFormNewPos;

    private bool blnMouseDown=false;

主要的三个鼠标事件,即MouseDown、 MouseMove、 MouseUp三个事件。

    private void frmTopMost_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)

    {

        if( blnMouseDown )

        {

            //Get the current position of the mouse in the screen

            ptMouseNewPos = Control.MousePosition;

 

            //Set window position

            ptFormNewPos.X = ptMouseNewPos.X - ptMouseCurrrnetPos.X + ptFormPos.X;

            ptFormNewPos.Y = ptMouseNewPos.Y - ptMouseCurrrnetPos.Y + ptFormPos.Y;

 

            //Save window position

            Location = ptFormNewPos;

            ptFormPos = ptFormNewPos;

 

            //Save mouse position

            ptMouseCurrrnetPos = ptMouseNewPos;

        }      

    }

 

    private void frmTopMost_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)

    {

        if(e.Button==MouseButtons.Left)

        {

            blnMouseDown = true;

 

            // Save window position and mouse position

            ptMouseCurrrnetPos = Control.MousePosition;

            ptFormPos = Location;

        }

    }

 

    private void frmTopMost_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)

    {

        if( e.Button == MouseButtons.Left)

            //Return back signal

            blnMouseDown = false;

    }

 

感谢沉寂的蓝的博客,想要了解悬浮窗口的实现可以参考下面的链接。

http://blog.sina.com.cn/s/blog_6e10930d0101acv9.html

 

拖拽窗体的实现

标签:false   button   sed   int   ati   博客   ack   and   screen   

原文地址:https://www.cnblogs.com/comingx-zx/p/8125743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!