Winform无边框的窗体,如何在鼠标拖动到屏幕最顶端时自动最大化,鼠标再拖动时自动还原

weier_zeng 2017-07-28 08:22:46
正如标题,意思就是如何实现有边框的窗体一样的功能,有边框的是拖动标题栏自动实现了这些功能,我的窗体是无边框无标题栏的,我看到很多软件都有这样的功能,但不知道怎么实现。
...全文
758 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenzaizai 2017-07-28
  • 打赏
  • 举报
回复
你需要解决一下几个问题: 1、实现无边框窗体的移动。下边是无边框窗体移动的方法,希望有用 const int WM_NCHITTEST = 0x0084;//Windows用来获取鼠标命中在窗体的哪个部分 const int HTCAPTION = 2; //标题栏 const int HTCLIENT = 1; //客户区 /// <summary> /// 窗体移动 /// </summary> /// <param name="m"></param> protected override void WndProc(ref Message m) { base.WndProc(ref m); switch (m.Msg) { case WM_NCHITTEST: if (m.Result == (IntPtr)HTCLIENT) m.Result = (IntPtr)HTCAPTION; break; } } 2.当窗体移动到屏幕边缘时,自动改变大小。这个可以在调用窗体的paint事件完成,不过会消耗资源。
powerat123 2017-07-28
  • 打赏
  • 举报
回复
1、设置整个窗体显示无边框 2、窗体最上方可以放个空的panel,做标题栏,设置鼠标点击,拖拽事件,记录鼠标拖拽后的坐标,x,y,同时更新窗体的位置,当y=0时表示到顶了,手动设置窗体最大化,不为0,恢复原大小, 以上只是个提议,不知道可不可行,应该有漏的,不过可以试下,判断最大化的条件可以自己控制

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧