C#拖动鼠标移动Form窗体,移动Panel面板通用类(FormDragDrop)|C/S开发框架

效果图

FormDragDrop 类
C# 全选
/// <summary>
/// 拖动鼠标移动Form窗体,移动Panel面板通用类
/// </summary>
public class FormDragDrop
{
private Point _MouseOffset;
private bool _IsMouseDown = false;
private Control _container;
private Control _handleControl;
/// <summary>
/// 主方法
/// </summary>
/// <param name="dragControl">拖动的组件(容器或窗体)</param>
/// <param name="container">容器或窗体</param>
public static void Handle(Control dragControl, Control container)
{
FormDragDrop handle = new FormDragDrop
{
_handleControl = dragControl,
_container = container
};
handle.HandleEvents();
}
/// <summary>
/// 绑定事件
/// </summary>
private void HandleEvents()
{
_handleControl.MouseDown += On_MouseDown;
_handleControl.MouseMove += On_MouseMove;
_handleControl.MouseUp += On_MouseUp;
}
/// <summary>
/// 按下鼠标
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void On_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
//鼠标点击组件或窗体的坐标
if (e.Button == MouseButtons.Left)
{
if (_container is Form)
{
xOffset = -e.X;
yOffset = -e.Y;
_MouseOffset = new Point(xOffset, yOffset);
}
else
{
xOffset = e.X;
yOffset = e.Y;
_MouseOffset = new Point(xOffset, yOffset);
}
_IsMouseDown = true;
}
}
Point _CurrentTempPoint;
/// <summary>
/// 移动鼠标
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void On_MouseMove(object sender, MouseEventArgs e)
{
if (_IsMouseDown)
{
if (_container is Form)
{
_CurrentTempPoint = Control.MousePosition; //鼠标位置在屏幕的坐标
_CurrentTempPoint.Offset(_MouseOffset.X, _MouseOffset.Y);
_container.Location = _CurrentTempPoint;
}
else
{
var x = e.Location.X - _MouseOffset.X;
var y = e.Location.Y - _MouseOffset.Y;
_CurrentTempPoint = _container.Location;
_CurrentTempPoint.Offset(x, y);
_container.Location = _CurrentTempPoint;
}
}
}
/// <summary>
/// 释放鼠标
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void On_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
_IsMouseDown = false;
}
}
}使用方法
1、拖动窗体
C# 全选
//拖拽主窗体
FormDragDrop.Handle(this.pnlTitle, this);2、拖动Panel组件
C# 全选
//拖拽工具箱面板
FormDragDrop.Handle(pnlToolTitle, pnlTool);
参考文档:
C# 拖动鼠标移动窗体背景图片窗体通用类FormDragDrop
C# 按住鼠标左键移动窗体Form的位置,C#拖动窗体通用类
CSFramework.CodeGeneratorV6.0|将窗体(Form)源码加入到VS解决方案|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
丰富的界面窗体权限控制、按钮权限、扩展权限、角色权限 | Winform蝇量框架|C/S开发框架
开发数据查询窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
新增基础资料单表窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
Winform开发框架核心功能 - 主窗体与模块架构
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
C#.NET反射获取Form窗体中所有的方法Method|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
测试Form.AutoScale模式,子窗体继承后界面尺寸、布局及字体变大|C/S开发框架
模块主窗体添加功能按钮 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
主窗体模块容器(frmModuleContainer)介绍 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
主窗体状态栏(StatusBar)介绍 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
C# 拖动鼠标移动窗体背景图片窗体通用类FormDragDrop
C# 按住鼠标左键移动窗体Form的位置,C#拖动窗体通用类
CSFramework.CodeGeneratorV6.0|将窗体(Form)源码加入到VS解决方案|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
丰富的界面窗体权限控制、按钮权限、扩展权限、角色权限 | Winform蝇量框架|C/S开发框架
开发数据查询窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
新增基础资料单表窗体 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
Winform开发框架核心功能 - 主窗体与模块架构
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
C#.NET反射获取Form窗体中所有的方法Method|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
测试Form.AutoScale模式,子窗体继承后界面尺寸、布局及字体变大|C/S开发框架
模块主窗体添加功能按钮 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
主窗体模块容器(frmModuleContainer)介绍 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
主窗体状态栏(StatusBar)介绍 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
