• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# 移动窗口 适用于有标题栏和无标题栏窗体 超级简单版

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天看到苏飞的“一个拖动无标题栏窗体的方法 修正”,突然想起多年前的劳动成果,贴出来。

适用于有标题栏和无标题栏窗体,适用于窗体内控件,当然 Form 也不例外,只要能添加 MouseDown、MouseMove 事件,无需添加 MouseUp 事件,也无需考虑 Form 是否有标题栏。

本方法采用 Control.MousePosition,而没有采用 MouseEventArgs e 获取数据,是因为这样无需考虑窗体有无标题栏和边框的大小,也无需考虑是窗体引发事件,还是窗体内控件引发事件。

 1 // 洪星 ‎2006‎年‎11‎月‎14‎日
 2 // www.hongcing.com 
 3 // QQ 219402
 4 
 5 // 窗体的屏幕坐标
 6 Point formPoint;
 7 
 8 // 鼠标光标的屏幕坐标
 9 Point mousePoint;
10 
11 // 获取窗体的屏幕坐标和鼠标光标的位置(屏幕坐标)
12 private void MainForm_MouseDown(object sender, MouseEventArgs e)
13 {
14     formPoint = this.Location;
15     mousePoint = Control.MousePosition;
16 }
17 
18 // 响应鼠标移动,并移动窗口
19 private void MainForm_MouseMove(object sender, MouseEventArgs e)
20 {
21     if (Control.MouseButtons == MouseButtons.Left)
22     {
23         Point mousePos = Control.MousePosition;
24         this.Location = this.formPoint + (Size)mousePos - (Size)this.mousePoint;
25     }
26 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Winform关于控件TabControl闪烁的问题发布时间:2022-07-10
下一篇:
C#GUID的使用发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap