.net – Winforms – 单击拖动窗体中的任何位置,就像在表单中点击一样

.net – Winforms – 单击拖动窗体中的任何位置,就像在表单中点击一样,第1张

概述我正在创建一个用于Winforms应用程序的小模态窗体。它基本上是一个进步吧。但是,我希望用户能够单击表单中的任何位置,并将其拖放到桌面上,使其在仍在显示状态下移动。 我该如何实现这个行为? Microsoft KB Article 320687有一个详细的答案这个问题。 基本上,当被测试点位于窗体的客户区域时,您将覆盖WndProc方法将HTCAPTION返回到WM_NCHITTEST消息 – 我正在创建一个用于Winforms应用程序的小模态窗体。它基本上是一个进步吧。但是,我希望用户能够单击表单中的任何位置,并将其拖放到桌面上,使其在仍在显示状态下移动。

我该如何实现这个行为?

解决方法 Microsoft KB Article 320687有一个详细的答案这个问题。

基本上,当被测试点位于窗体的客户区域时,您将覆盖WndProc方法将HTCAPTION返回到WM_NCHITTEST消息 – 这实际上是告诉windows对待点击完全一样,就好像发生了表格的标题。

private const int WM_NCHITTEST = 0x84;private const int HTCLIENT = 0x1;private const int HTCAPTION = 0x2;protected overrIDe voID WndProc(ref Message m){  switch(m.Msg)  {    case WM_NCHITTEST:      base.WndProc(ref m);      if ((int)m.Result == HTCLIENT)      {        m.Result = (IntPtr)HTCAPTION;      }      return;  }  base.WndProc(ref m);}
总结

以上是内存溢出为你收集整理的.net – Winforms – 单击/拖动窗体中的任何位置,就像在表单中点击一样全部内容,希望文章能够帮你解决.net – Winforms – 单击/拖动窗体中的任何位置,就像在表单中点击一样所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1112748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存