c#异形窗体遮罩效果

 c#异形窗体遮罩效果,移动,关闭,最大化,最小化,还原操作

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{private Point mouseOffset;                 //记录鼠标指针的坐标 private bool isMouseDown = false;      //记录鼠标按键是否按下public Form1(){this.StartPosition = FormStartPosition.CenterScreen;InitializeComponent();}private void Form1_Load(object sender, EventArgs e){TransparencyKey = Color.White;Image BackgroundImage = Bitmap.FromFile("111.png");BitmapRegion BitmapRegion = new BitmapRegion();//此为生成不规则窗体和控件的类//  BitmapRegion.CreateControlRegion(this, new Bitmap("feichuan5.jpg"));BitmapRegion.CreateControlRegion(this, new Bitmap("feichuan5a.png"));}private void button_start_Click(object sender, EventArgs e){MessageBox.Show("程序以启动");}private void button_close_Click(object sender, EventArgs e){MessageBox.Show("程序已将关闭");this.Close();}private void button_max_Click(object sender, EventArgs e){this.WindowState = FormWindowState.Maximized;}private void button_min_Click(object sender, EventArgs e){this.WindowState = FormWindowState.Minimized;}private void button_to_default_Click(object sender, EventArgs e){this.WindowState = FormWindowState.Normal;}private void Form1_MouseDown(object sender, MouseEventArgs e){int xOffset;int yOffset;if (e.Button == MouseButtons.Left){xOffset = -e.X - SystemInformation.FrameBorderSize.Width;yOffset = -e.Y - SystemInformation.CaptionHeight -SystemInformation.FrameBorderSize.Height;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的值//   确保只有鼠标左键按下并移动时,才移动窗体if (e.Button == MouseButtons.Left){isMouseDown = false;}}}
}

工程代码:

https://download.csdn.net/download/txwtech/88746025icon-default.png?t=N7T8https://download.csdn.net/download/txwtech/88746025

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在程序中链接静态库 和 动态库

9. 链接库 在编写程序的过程中,可能会用到一些系统提供的动态库或者自己制作出的动态库 或者静态库文件,cmake中也为我们提供了相关的加载动态库的命令hehedalinux:~/Linux/loveDBTeacher-v3$ tree . ├── CMakeLists.txt ├── include │ └── …

如何从 Keras 中的深度学习目录加载大型数据集

一、说明 数据集读取,使用、在磁盘上存储和构建图像数据集有一些约定,以便在训练和评估深度学习模型时能够快速高效地加载。本文介绍Keras 深度学习库中的ImageDataGenerator类等工具自动加载训练、测试和验证数据集。 二、ImageDataGenerator加载数据集…

中科院自动化所:基于关系图深度强化学习的机器人多目标包围问题新算法

摘要:中科院自动化所蒲志强教授团队,提出一种基于关系图的深度强化学习方法,应用于多目标避碰包围(MECA)问题,使用NOKOV度量动作捕捉系统获取多机器人位置信息,验证了方法的有效性和适应性。研究成果在2022年ICRA大会发…

【征服redis5】redis的Redisson客户端

目录 1 Redisson介绍 2. 与其他Java Redis客户端的比较 3.基本的配置与连接池 3.1 依赖和SDK 3.2 配置内容解析 4 实战案例:优雅的让Hash的某个Field过期 5 Redisson的强大功能 1 Redisson介绍 Redisson 最初由 GitHub 用户 “mrniko” 创建,并在…

RPA与通知机器人的完美结合

写在前面 在现代快节奏的工作环境中,我们经常会面临多个任务同时进行的情况,你还在为时间不够用、忙碌而惆怅吗?你还在为时刻盯着电脑流程而烦恼吗?你还在为及时收不到自己的自动化任务进度而焦躁吗?别担心&#xff0…

matlab快速入门(读取数据并绘制散点图和拉格朗日插值

目录 1.读取excel:2.注释快捷键:3.数组/矩阵索引:4.绘制散点图:5.拉格朗日插值:5.1分割出非空和空的x和y两组数据:5.2插值:5.3画图: 小结: 1.读取excel: [nu…

AI对决:ChatGPT与文心一言的比较

文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文心一言的优势AI技术发展趋势总结 引言 在过去的几年里,人工智能(AI)技术取得了…

十、Qt 操作PDF文件

《一、QT的前世今生》 《二、QT下载、安装及问题解决(windows系统)》《三、Qt Creator使用》 ​​​ 《四、Qt 的第一个demo-CSDN博客》 《五、带登录窗体的demo》 《六、新建窗体时,几种窗体的区别》 《七、Qt 信号和槽》 《八、Qt C 毕业设计》 《九、Qt …

Jenkins集成Sonar Qube

下载插件 重启Jenkins 容器 sonarqube 使用令牌 Jenkins 配置 重新构建

部署SD-WAN需要哪些设备和软件?

企业网络需求不断增加,越来越多的企业选择采用SD-WAN组网以提升网络性能和管理效率。在部署SD-WAN组网专线时,需要一系列特定的设备和软件来支持和管理网络。本文将对这些设备和软件进行详细介绍。 SD-WAN控制器: SD-WAN控制器是SD-WAN组网的…

vue3实现动态侧边菜单栏的几种方式总结

基于自建json数据的动态侧边菜单栏 后端接口json数据 src/api/menuList.js const menuList [{url: ,name: 人员管理,icon: icon-renyuan,menuId: 1,children: [{url: /user,name: 用户管理,icon: icon-jurassic_user,menuId: 1001,children: []},{url: /role,name: 角色管…

Qt第二周周二作业

代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void paintEvent(…