本文主旨及简介:最近在一个桌面小项目上遇到一个需求,不算技术难题,就当记笔记了。
具体需求是自定义鼠标拖动窗体事件,那么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;

最低0.47元/天 解锁文章
6411

被折叠的 条评论
为什么被折叠?



