WinForm窗体移动事件自定义,WinForm控件移动 C#实现winform窗体拖动事件

本文主旨及简介:最近在一个桌面小项目上遇到一个需求,不算技术难题,就当记笔记了。

具体需求是自定义鼠标拖动窗体事件,那么WinForm窗体本身就融合了该事件,为什么还要自定义,原因就是当我们不需要WinForm那个古老古朴的界面的时候,用自定义控件或者其他控件覆盖窗体的时候,窗体就不能被鼠标选中进行拖动了,比如下面的界面

鼠标拖动控件这个操作一共有三个关联事件,分别是MouseMove鼠标移动 MouseDown鼠标点击 MouseUp鼠标松开抬起。在控件的事件属性中可以直接双击进入事件方法进行编辑,如下图

代码如下:

private bool isDragging = false;//用于跟踪用户是否正在拖动窗体
private Point lastCursor;//用于存储鼠标最后一次移动时的位置
private Point lastForm;//用于存储窗体在鼠标按下时的位置
// 处理标题面板鼠标移动事件的方法
private void uiTitlePanel1_MouseMove(object sender, MouseEventArgs e)
{
    if (isDragging)
    {
        // 计算鼠标移动的偏移量
        int deltaX = Cursor.Position.X - lastCursor.X;
        int deltaY = Cursor.Position.Y - lastCursor.Y;

        
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值