以前在大学的时候模仿Winamp的磁吸效果编写过一个类库,用于在应用中多个窗体的相互磁吸效果。因为此效果应用不多,但是窗体磁吸屏幕边缘的效果倒是比较实用,于是就用C#来实现窗体磁吸屏幕边缘的代码,这里提供两种方式:一种是直接用编写的类库进行;另一种是使用窗体的基类,然后在基类里实现这个功能;

下面进行介绍这两种方案:

  1、 项目目录;

  

  2、 源码介绍;

  1) 类库方法;

  类库是根据窗体的鼠标按下和移动的位移作为依据进行的移动方法:

  

  2) 基类方法;

  基类是基于移动消息进行移动的方案:

  

  3、 运行界面;

  

  4、 使用介绍;

  读者根据自己的需要选择使用哪个方法,然后引用对应的类库进行使用即可。

  1) 类库方法;

  

  2) 基类方法;

  

  5、 源码下载;

  https://download.csdn.net/download/lzhdim/90747700

  6、 其它建议;

  这两个方案已经简单明了了,代码也很容易理解,请需要的读者自己复用代码。

C#窗体磁吸屏幕的两种实现方案 - 开源研究系列文章的更多相关文章

  1. C#开发的磁吸屏幕类库 - 开源研究系列文章

    上次写了一个关于线程池的博文,里面讲到了关于磁吸屏幕的类库,今天就把这个类库进行下讲解. 一.      类库目录: 类库的目录见下图,主要定义了Win32的一些API,以及一些API使用到的常量和结 ...

  2. k8s的两种网络方案与多种工作模式[flannel与calico]

    k8s的两种网络方案与多种工作模式 1. Flannel: flannel有三种工作模式: 1. vxlan(隧道方案) 2. host-gw(路由方案) 2. udp(在用户态实现的数据封装解封装, ...

  3. Android 截取手机屏幕两种实现方案解析

    近期在开发的过程中,遇到了一个须要截取屏幕保存为图片的需求,详细为截取webview的视图保存图片. 方法1:首先想到的思路是利用SDK提供的View.getDrawingCache()方法: pub ...

  4. (三)Redis两种持久化方案

    Redis的持久化策略:2种 RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘.RDB是Redis默认采用的持久化方 ...

  5. 【Spring容器】项目启动后初始化数据的两种实践方案

    早期业务紧急,没有过多的在意项目的运行效率,现在回过头看走查代码,发现后端项目(Spring MVC+MyBatis)在启动过程中多次解析mybatis的xml配置文件及初始化数据,对开发阶段开发人员 ...

  6. Apache之——多虚拟主机多站点配置的两种实现方案

    Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点: 将同一个端口映射成不同的域名,不同的域名映射到不同的站点. 我们只需要修 ...

  7. redis的两种持久化方案

    前言 人生在于折腾系列,网络,多线程等系列博客楼主还在继续折腾也不会放弃.缓存的知识其实并不仅仅在于简单的增删改查,我觉得有必要全面深入的学习一波.记录学习的过程与体悟. RDB 什么是RDB 对re ...

  8. 日均数据量千万级,MySQL、TiDB两种存储方案的落地对比

    http://mp.weixin.qq.com/s?__biz=MzIzNjUxMzk2NQ==&mid=2247484743&idx=1&sn=04337e020d268a9 ...

  9. redis两种持久化方式RDB和AOF

    目录 前言 1. Redis 数据库结构 2. RDB 持久化 2.1. RDB 的创建和载入 2.1.1. 手动触发保存 SAVE 命令 BGSAVE 命令 SAVE 和 BGSAVE 的比较 2. ...

  10. Redis的两种持久化机制

    Redis的两种持久化机制 1.持久化机制 client--->redis(内存)--->内存数据-数据持久化--->磁盘 两种方法 快照(Snapshot) AOF(Append ...

随机推荐

  1. 高数小技巧:和 e^x 有关的积分该怎么算?

    高数解题也需要日积月累,下面是和 \(e^{x}\) 相关的一些常用解题思路,记得收藏+关注哦,还有更多考研数学实战笔记等着你呢( ̄︶ ̄) 当前高数笔记的最新内容,可以查看: https://zhao ...

  2. 低代码 + DeepSeek:赋能开发者,效率飞跃新高度

    活字格接入 DeepSeek 前段时间,小编陆续发布了关于葡萄城旗下产品 Wyn 和 SpreadJS 成功接入DeepSeek的技术文章,分享了两款产品与 DeepSeek 集成后的功能优势和应用场 ...

  3. 经由同个文件多次压缩的文件MD5都不一样问题排查,感慨AI的强大!

    开心一刻 今天点了个外卖:牛肉炒饭 外卖到了后,发现并没有牛肉,我找商家理论 我:老板,这个牛肉炒饭的配菜是哪些? 商家:青菜 豆芽 火腿 鸡蛋 葱花 我:没有牛肉? 商家:亲,没有的哦 我:我点的牛 ...

  4. 三分钟构建高性能WebSocket服务 | 超优雅的Springboot整合Netty方案

    前言 每当使用SpringBoot进行Weboscket开发时,最容易想到的就是spring-boot-starter-websocket(或spring-websocket).它可以让我们使用注解, ...

  5. Ubuntu上安装MySQL / MariaDB

    目录 在Ubuntu上安装MySQL 更新Ubuntu 安装MySQL 安全的MySQL 优化MySQL(仅限高级用户) 如何在Ubuntu上安装MariaDB 更新Ubuntu 安装MariaDB ...

  6. 无法解析@NotBlank

    当碰到无法解析的时候,一般都是地址写错了,找不到相应的路劲 我是全局能搜到这个包@NotBlank,在jakarta.validation-api包里面,但是我网上搜https://www.cnblo ...

  7. 通用的SpringBoot集成的文件上传与下载

    废话不多说--直接看代码 controller package com.webank.wedatasphere.qualitis.controller.thymeleaf; import com.we ...

  8. delphi判断字符是否是汉字

    function IsHZ(ch: WideChar): boolean; var i: Integer; begin i := Ord(ch); if (i < 19968) or (i &g ...

  9. 关于项目中 "不能创建大小为 8190 的行,该大小大于所允许的最大行大小 8060 "的处理

    由于产品底层设计的情况,sqlserver  列设置了 可以随用户 创建自动生成 项目特殊,设置的列过多,有三四百列(通常不会过多) 数据无法正常保存,报错"不能创建大小为 8190 的行, ...

  10. [源码系列:手写spring] IOC第九节:应用上下文ApplicationContext

    内容介绍 在Spring中应用上下文ApplicationContext是相较于BeanFacotry更为先进的IOC容器,BeanFacotry是Spring实现IOC最基础最核心的接口,使得Spr ...