C#知识|无边框的WinForm窗体,如何拖动位置?

news2024/11/17 2:26:46

哈喽,你好啊,我是雷工!
上一节时练习做了一个简单的登录窗体界面,为了美观设置成了无边框,
当运行起来,发现无边框的窗体无法用鼠标拖动位置,
本节记录通过添加代码实现无边框窗体实现移动,以下为测试笔记。

01 效果展示

1.1、添加代码前,在窗体上按住鼠标左键拖动鼠标,无边框窗体无法被鼠标拖动。

在这里插入图片描述

1.2、当添加完相关代码,可以实现用鼠标拖动窗体移动。

在这里插入图片描述

02、实现步骤

2.1、MouseDown方法

方法代码:

private void Frm_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)//判断鼠标左键是否被按下
    {
        mouseOff = new Point(-e.X, -e.Y);//得到变量的值
        leftFlag = true;//标记鼠标左键的状态
    }
}

2.2、MouseMove方法

方法代码:

private void Frm_MouseMove(object sender, MouseEventArgs e)//鼠标移动触发MouseMove事件
{
    if(leftFlag)//判断鼠标左键有没有被按下
    {
        Point mouseSet = Control.MousePosition;//获取屏幕中鼠标所在的位置
        mouseSet.Offset(mouseOff.X, mouseOff.Y);//设置移动后的位置
        Location=mouseSet;
    }
}

2.3、MouseUp方法

方法代码:

private void Frm_MouseUp(object sender, MouseEventArgs e)//鼠标左键抬起后触发MouseUp事件
{
    if(leftFlag)
    {
        leftFlag = false;//释放鼠标后标注为false;
    }
}

2.4、登录窗体关联方法

在窗体的事件中关联响应
在这里插入图片描述

2.5、创建字段

新建两个字段用来存放鼠标的坐标及鼠标左键的状态
代码如下:

private Point mouseOff;//鼠标移动位置变量
private bool leftFlag;//标签是否为左键

03 后记

通过添加以上代码,并做相应的关联即可实现鼠标拖动无边框的Winform窗体,有兴趣的小伙伴也可以尝试一下;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1664721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA创建springboot项目时不能选择java 8或者java 11等等版本的问题,解决方案

文章目录 1. Project JDK 和 Java 的区别2. 没有 java 8 或 java 11 等版本2.1 方案一2.2 方案二2.3 方案三 1. Project JDK 和 Java 的区别 我们在利用 idea 创建 spring boot 项目时,会有以上两个选项,这两个选项有什么区别? 答&#xff…

二、jacoco代码覆盖率工具

jacoco代码覆盖率工具 一、jacoco介绍二、常见的java代码覆盖率工具三、为什么选择jacoco四、jacoco的特点五、Jacoco 支持的覆盖率指标六、那些暂未支持的覆盖率指标七、jacoco技术原理八、Jacoco 下载与配置九、jacoco主要文件十、jacoco使用流程 一、jacoco介绍 JaCoCo 是一…

【GESP】2023年12月图形化二级 -- 小杨报数

小杨报数 【题目描述】 小杨需要从 1 1 1到 N N N报数。在报数过程中,小杨希望跳过 M M M的倍数。例如,如果 N 5 N5 N5, M 2 M2 M2,那么小杨就需要依次报出 1 1 1, 3 3 3, 5 5 5。 默认小猫角色和白色背…

LED液晶显示屏(LCD/TFT)抗干扰太阳光模拟器

LED&液晶显示屏(LCD/TFT)抗干扰太阳光模拟器:解决驾驶员视线问题 在驾车过程中,太阳光的干扰是一个常见的问题。特别是在高速公路等需要高度集中注意力的情况下,太阳光的干扰会严重影响驾驶员的视线,增加驾驶风险。为了解决这…

eNSP中小型园区网络拓扑搭建(上)

→b站直通车,感谢大佬← →eNSP中小型园区网络拓扑搭建(下)← 不带配置命令的拓扑图已上传~ 项目背景: 某公司准备新建一张网络供企业办公使用。写字楼共3层,一层会客大厅、二层行政部及市场部、三层研发部。一层设…

容器监控与日志管理

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、Docker监控工具 二、容器日志工具docker logs 三、第三方日志工具 四、容器日志驱动 五、示例 5.1、查看容器中运行的进程的信息 5.2、查看…

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Method3.1 Motion Enhanced Module3.2 Temporal Interaction Module3.3 TEINet 4 Experiments5 Conclusion阅读总结 文章信息; 原文链接:https:…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章:https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签,但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

工业机器人应用实践之玻璃涂胶(篇二)

工业机器人 接上篇文章,浅谈一下实践应用,具体以玻璃涂胶为例: 了解工业机器人在玻璃涂胶领域的应用认识工具坐标系的标定方法掌握计时指令的应用掌握人机交互指令的应用掌握等待类指令用法(WaitDI、WaitUnitl 等)认…

表面的相似,本质的不同

韩信与韩王信,两个韩信的结局都是被刘邦所杀,似乎结局类似。但是,略加分析,就会发现其中存在本质的区别。 韩信属于必杀。他的王位是要来的,有居功自傲的本意,功高震主而且毫不避讳。而且年轻,…

REFORMER: 更高效的TRANSFORMER模型

大型Transformer模型通常在许多任务上都能达到最先进的结果,但是训练这些模型的成本可能会非常高昂,特别是在处理长序列时。我们引入了两种技术来提高Transformer的效率。首先,我们用一种使用局部敏感哈希的点积注意力替换了原来的点积注意力…

Apache ECharts

Apache ECharts介绍: Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html Apache ECh…

Django简介

Django 1.安装Django pip install djangopython的包的分布 \python- python.exe- Scripts- pip.exe- django-admin.exe [工具,创建django项目]- Lib- 内置模块- site-packages [安装的包]- pymysql- flask- django [框架的源码]2.创建项目 Django项目会有…

Windows系统下通过nginx配置多项目

文章目录 前言大概思路实际操作记录:查看nginx 错误日志问下AI注意点: 当访问域名根路径时,重定向到/pc解决: 总结 前言 在windows电脑启动一个nginx 测试配置多前端项目,一个pc端(vue3tsvite &#xff0c…

鸿蒙ArkUI:【编程范式:命令式->声明式】

命令式 简单讲就是需要开发用代码一步一步进行布局,这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …

【C/C++笔试练习】DNS设置文件、应用层、Dos攻击、DNS服务、DNS、子网划分、http状态、路由设置、TCP连接、HTTP状态码、剪花布条、客似云来

文章目录 C/C笔试练习选择部分(1)DNS设置文件(2)应用层(3)Dos攻击(4)DNS服务(5)DNS(6)子网划分(7)http状态&am…

嵌入式C语言高级教程:实现基于STM32的智能健康监测手环

智能健康监测手环能够实时监控用户的生理参数,如心率、体温和活动量,对于健康管理和疾病预防非常有帮助。本教程将指导您如何在STM32微控制器上实现一个基本的智能健康监测手环。 一、开发环境准备 硬件要求 微控制器:STM32L476RG&#xf…

进程间通信(二)

共享内存 当进程A和进程B有一块共享的内存空间时,这两个进程之间的数据交互就会变的很简单,只需要像读取自己内存空间中的元素一样去读取数据即可。实现共享内存进行数据交互的一般步骤: 创建/打开共享内存内存映射数据交换断开与共享内存的…

【数组算法】598. 区间加法

给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] [ai, bi] 意味着当所有的 0 < x < ai 和 0 < y < bi 时&#xff0c; M[x][y] 应该加 1。 在 执行完所有操作后 &#xff0c;计算并返回 矩阵中最大整数的个数 。 示例 1: …

户籍管理系统的设计与实现

【免费】户籍管理系统的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89296790 ​​​​​​​户籍管理系统的设计与实现 摘 要 当今社会人们生活质量越来越高&#xff0c;人们对生活品质的追求不断提升&#xff0c;对于孩子求学&#xff0c;变更住…