private bool isMouseDown = false;
        private Point FormLocation;     //form的location
        private Point mouseOffset;      //鼠标的按下位置

private void pnlTitle_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = true;
                FormLocation = this.Location;
                mouseOffset = Control.MousePosition;
            }
        }

private void pnlTitle_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false;
        }

private void pnlTitle_MouseMove(object sender, MouseEventArgs e)
        {
            int _x = 0;
            int _y = 0;
            if (isMouseDown)
            {
                Point pt = Control.MousePosition;
                _x = mouseOffset.X - pt.X;
                _y = mouseOffset.Y - pt.Y;

this.Location = new Point(FormLocation.X - _x, FormLocation.Y - _y);
            }
        }

转载于:https://www.cnblogs.com/whz881027/articles/2106296.html

C# WinForm自定义拖动窗体相关推荐

  1. C# WinForm拖动窗体 使用MouseDown事件

    在我们使用Winform窗体的时候,由于不喜欢WinForm的边框样式的时候,希望用字自己的设置的样式来进行美观的渲染,这样的话就没有办法像Winform那样拖动窗体,在这里我发现一个好东西分享给大家 ...

  2. winform自定义窗体边框样式模板(支持四周边框拖拽改变窗体大小,支持鼠标拖动头部移动窗体)

    winform自己的边框已经过时,但小伙伴们又觉得自定义太过麻烦.本文将手把手教你自定义winform边框样式,并提供源代码链接(可直接作为模板使用).话不多说,直接上操作步骤. 先上一张完成截图 一 ...

  3. 解决winform自定义窗体在扩展显示器最大化不能充满屏幕

    参考:(60条消息) winForm在多显示器(主显示器 + 扩展显示器)上显示最大化和还原操作._梦的远方~的博客-CSDN博客 原因: 我开发用笔记本,缩放设置为150%:同时外接一个扩展屏,缩放 ...

  4. C# WinForm 无边框窗体,加阴影、拖动、改变大小等功能完美实现(自认为是完美的 ^=^)

    关于Winform的无边框窗体实现,网络上有很多大牛文章,这里不赘述.我也是参考网络上的思路,在使用别人的代码基础上,发现和遇到了很多小问题,所以做了改造,以下做个记录,也是给需要的人提供一点思路,如 ...

  5. c#:winform鼠标拖动窗口大小时,设定窗口最小尺寸

    winform 程序运行过程中,用户用鼠标拖动窗体大小时,如将窗体调整得极小,可能窗体上的控件就面目全非(或看不到了),用下面的代码可以设定窗口的最小尺寸,以防止这种情况 private void F ...

  6. c#中WinForm中拖拽窗体实现移动功能(无边框模态窗体)

    在WindowsForm 应用程序中,如果将窗体的FormBorderStyle属性设置为none,这时,用鼠标拖拽窗体时就无法实现移动的功能了,下面就是解决方案. 在FormBordeStyle属性 ...

  7. 拖动窗体FormBorderStyle属性为None的窗体移动

    winform窗体的样式很单一,不够漂亮,往往我们需要对窗体进行重写,但是我们又要保留在重写前窗体本身带的功能,例如拖动窗体的头进行移动之类的. 一下方式可以实现该方法: [DllImport(&qu ...

  8. 自定义WPF窗体形状

    介绍 你好WPF爱好者. 随着WPF等统一API语言的发明,丰富用户界面变得非常容易. 创建丰富的用户界面只是一个想法. 您需要拥有的是创造性思维和最新技术融合. WPF和Expression Ble ...

  9. C#实现Winform自定义半透明遮罩层

    在网页中通过div+css实现半透明效果不难,今天我们看看一种在winfrom中实现的方法: 效果图如下,正常时: 显示遮罩层时: 自定义遮罩层控件的源码如下: View Code using Sys ...

最新文章

  1. 判断 小程序_社区团购小程序商城系统,可以从哪些方面判断?
  2. java nio 追加写文件_Java NIO在文件末尾追加数据
  3. HTML5培训教程学习之动效制作
  4. 15.RDD 创建内幕解析
  5. 列出所有K个元素的子集-----2013年1月26日
  6. 将jar添加到发布目录_第32批免购置税新能源车型目录发布;通用BEV3平台将入华...
  7. [html] iframe框架都有哪些优缺点?
  8. java运行字符串代码
  9. 《从问题到程序:用Python学编程和计算》——1.3 程序开发
  10. Bootstrap CSS 编码规范之Less 和 Sass 中的嵌套
  11. 【测试】软件测试计划的编写
  12. linux探测i2c设备连接状态,手把手教你写Linux I2C设备驱动
  13. python基础 网络编程
  14. windows常用端口对应表
  15. 高中单招计算机基础知识题库,2015单招考试计算机基础知识题库
  16. 基于javaweb+jsp房屋租赁系统(java+SSM+jsp+mysql+maven)
  17. rxj热血江hsf湖私服_如何使用RxJ进行React性思考和动画化移动对象
  18. No matter how hard it is or no matter how bad it gets, I am going to make it!
  19. python识别视频中火焰_基于yolov3和python框架的火焰识别检测算法
  20. Java modifier

热门文章

  1. [NOIP2012提高组]国王游戏
  2. 论如何学习一门编程语言
  3. 【Django】用pycharm初学习使用Django
  4. linux下添加用户并赋予root权限
  5. JMS学习(五)--ActiveMQ中的消息的持久化和非持久化 以及 持久订阅者 和 非持久订阅者之间的区别与联系...
  6. 使用内核定时器的second字符设备驱动及测试代码
  7. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)简要介绍和学习计划
  8. 6000字思考!一篇看懂促销系统的底层逻辑
  9. 一万字,关于产品「需求」阶段的思维公式,都在这儿了
  10. 产品必备:注册登录完整解决方案 | 含原型下载