C#窗体无边框后移动方法!

本文介绍了一种通过捕获鼠标左键并发送特定消息来实现Windows窗体无边界移动的方法。这种方法仅使用一个MouseMove事件即可完成窗体的拖动操作,相比传统的三个事件方案更为简洁高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

void FrmMain_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture(); //窗体移动 捕获鼠标
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + ACCAPTION, 0);
}
}
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();//窗体移动
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr MouseMsg, int wMsg, int wParam, int iParam);
public const int WM_SYSCOMMAND = 0x0112; //接收窗体按钮的消息
public const int SC_MOVE = 0xf010;
private ComponentFactory.Krypton.Toolkit.KryptonButton kbEsc;
private ComponentFactory.Krypton.Toolkit.KryptonButton kryptonButton3;
private ComponentFactory.Krypton.Toolkit.KryptonRichTextBox rthMain; //移动窗体
public const int ACCAPTION = 0x0002; //移动无边窗体的消息



《这个方法并不是自己写的 是在网上找到的较好的方法,之前弄的是写3个事件的,但是效果没这个好 所以推荐下...》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值