实现C#无标题栏窗体拖动

embedded/2024/9/23 20:21:07/

要实现C#无标题栏窗体拖动,需要以下步骤:

  1. 首先,将窗体的FormBorderStyle属性设置为None,这将去除窗体的边框。

  2. 接下来,通过鼠标按下、移动和松开的事件来实现拖动功能。在窗体的MouseDown事件中,记录鼠标的当前位置和窗体的当前位置。在MouseMove事件中,计算鼠标的偏移量,并将窗体的位置更新为偏移的位置。在MouseUp事件中,完成拖动操作。

下面是一个示例代码:

using System;
using System.Drawing;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{// 定义记录鼠标位置和窗体位置的变量private Point mouseOffset;private bool isMouseDown = false;public Form1(){InitializeComponent();// 设置窗体的FormBorderStyle属性为Nonethis.FormBorderStyle = FormBorderStyle.None;}private void Form1_MouseDown(object sender, MouseEventArgs e){// 记录鼠标位置和窗体位置int xOffset = -e.X;int yOffset = -e.Y;mouseOffset = new Point(xOffset, yOffset);isMouseDown = true;}private void Form1_MouseMove(object sender, MouseEventArgs e){// 如果鼠标按下,则更新窗体位置if (isMouseDown){Point mousePos = Control.MousePosition;mousePos.Offset(mouseOffset.X, mouseOffset.Y);Location = mousePos;}}private void Form1_MouseUp(object sender, MouseEventArgs e){// 鼠标松开,标记不再拖动isMouseDown = false;}}
}

在这个示例中,鼠标按下时记录鼠标位置和窗体位置,并将isMouseDown标记为true。鼠标移动时,计算鼠标的偏移量,并将窗体位置更新为偏移后的位置。鼠标松开时,将isMouseDown标记为false,表示不再拖动。

请注意,这里只是一个简单的示例,如果还需要处理其他情况,比如最大化、最小化等操作,可能需要进一步的处理。


http://www.ppmy.cn/embedded/26858.html

相关文章

美国国防部数据网格参考架构概述(下)

文章目录 前言四、行动者与角色五、基线服务与服务模式六、用例演示前言 DRMA从多个角度研究了CDAO数据网格的架构,以深入了解该网格将如何支持美国防部无缝访问联合数据、分析和基础设施以实现数字化转型和人工智能(AI)需求。它提供了一种战略性、原则性和技术性方法,通过…

JavaEE——Spring Boot入门

目录 📚 JavaEE——Spring Boot入门 🔧 1. 新建Spring Boot项目 🛠 2. 添加pom依赖 📝 3. 添加application.yml文件 📂 4. 创建Dao层 🔧 5. 创建Service层 🖥️ 6. 创建Controller层及HT…

微服务保护和分布式事务(Sentinel、Seata)笔记

一、雪崩问题的解决的服务保护技术了解 二、Sentinel 2.1Sentinel入门 1.Sentinel的安装 (1)下载Sentinel的tar安装包先 (2)将jar包放在任意非中文、不包含特殊字符的目录下,重命名为 sentinel-dashboard.jar &…

word 表格 文字 上下居中

问题 word 表格 文字 上下居中 详细问题 笔者进行word 文档编辑,对于表格中的文本内容,如何进行上下居中? 解决方案 步骤1、选中需要进行操作的单元格 步骤2、右键 → \rightarrow →点击表格属性 步骤3、依次点击单元格 → \rightar…

FSNotes for Mac v6.7.1中文激活:轻量级笔记管理工具

FSNotes for Mac,一款专为Mac用户打造的轻量级笔记管理工具,让您的笔记管理变得简单而高效。 FSNotes for Mac v6.7.1中文激活版下载 它采用Markdown文件格式,让您轻松创建和编辑富文本笔记,无需担心格式问题。同时,FS…

Java面试题:解释强引用、软引用、弱引用和虚引用在Java中是如何工作的?

在Java中,引用(Reference)分为四种类型,它们定义了GC(垃圾回收器)如何看待对象的引用。不同的引用类型在GC时的行为是不同的,这允许程序员更精确地控制对象的生命周期。 强引用(Stro…

[学习笔记] Android综合_2024-4-30

数据库注意: 前端与后端之间 要有事务、锁。 要用innodb才支持事务。 记得使用接口测试工具测试(HTTP ResuestListener)。 后端给前端发返回的数据类型一定要是map。 为了简洁,后端所有参数用post接口,别用get接口…

数字旅游引领未来智慧之旅:科技应用深度重塑旅游生态,智慧服务全面升级打造极致高品质旅游体验

随着信息技术的飞速发展,数字旅游作为旅游业与科技融合的新兴业态,正以其独特的魅力和优势,引领着旅游业迈向智慧之旅的新时代。数字旅游不仅通过科技应用重塑了旅游生态,更通过智慧服务为游客带来了高品质的旅游体验。本文将深入…