个人代码库の自动粘合桌面边缘

2023-05-16


  
using System.Windows.Forms;
using System;
namespace **
{

public partial class *** : form
{
/* 【必要事件】:
* No.1:窗体的 Move 事件。
* No.2:窗体的 MouseEnter事件。
* No.3:MouseLeave事件。在窗体的“deactivated”事件 + 窗体中[所有的控件]leave的事件中都加入该事件。
* 将“**”更改为最终要使用的窗体的namespace。
*/

int intBianYuanXiangSu = 7 ; // 边缘像素。即当窗体缩回去的时候,露出来多少像素,来提示窗体位置。

/// <summary>
/// 自动粘合桌面边缘。
/// </summary>
/// <param name="intJingDu"> 自动粘合的精度,默认10像素。 </param>
/// <param name="LeftRight"> 是否启动在接近桌面左右边缘时也自动粘合。 </param>
private void myMethod_AutoAbsorb( int intJingDu , bool LeftAndRight)
{

// 小于10像素.则使用默认10像素。
if ( intJingDu <= 10 )
intJingDu
= 10 ;

// 只有在窗体!不在!桌面的边缘的时候,才开始判断是否开始吸附。
if ( Left != SystemInformation.WorkingArea.Width - this .Size.Width && Left != 0 && Top != 0 )
{


// 当窗体靠近桌面"上方"的时候,开始粘合。
if ( Location.Y <= intJingDu && Location.Y > - this .Size.Height + intBianYuanXiangSu )
Top
= 0 ;

if ( LeftAndRight == true )
{
// 当窗体靠近桌面的"左边缘"时候,开始粘合。
if ( this .Location.X <= intJingDu && Location.X > - Size.Width + intBianYuanXiangSu )
Left
= 0 ;

// 当窗体靠近桌面“右边缘”的时候,开始粘合。WorkingArea获得桌面的尺寸的属性。
if ( Location.X >= ( SystemInformation.WorkingArea.Width - this .Size.Width - intJingDu )
&& Left < SystemInformation.WorkingArea.Width - intBianYuanXiangSu )
Left
= SystemInformation.WorkingArea.Width - Size.Width;
}
}
}


private void myMethod_AutoAbsorb_MouseEnter()
{

if ( Top == - this .Size.Height + intBianYuanXiangSu ) // 上边缘
this .Top = 0 ;

if ( Left == - this .Size.Width + intBianYuanXiangSu ) // 左边缘
this .Left = 0 ;

if ( Left == SystemInformation.WorkingArea.Width - intBianYuanXiangSu ) // 右边缘
this .Left = SystemInformation.WorkingArea.Width - this .Size.Width;


}

// 在窗体的deactivated事件 + 窗体中所有的控leave件的事件中都加入以下事件。这样勉强达到效果。
private void myMethod_AutoAbsorb_MouseLeave()
{

// 只有鼠标不在窗体的内部范围的时候,才开始缩回去。
if ( ! ( ( Control.MousePosition.X >= Left && Control.MousePosition.X <= Left + Width ) &&
( Control.MousePosition.Y
>= Top && Control.MousePosition.Y <= Top + Height ) ) )
{
if ( Top == 0 ) // 上边缘
Top = - Size.Height + intBianYuanXiangSu;

if ( Left == 0 ) // 左边缘
Left = - Size.Width + intBianYuanXiangSu;

if ( Left == SystemInformation.WorkingArea.Width - Size.Width ) // 右边缘
Left = SystemInformation.WorkingArea.Width - intBianYuanXiangSu;

}


}
}
}

 

转载于:https://www.cnblogs.com/AsionTang/archive/2010/05/09/1885712.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

个人代码库の自动粘合桌面边缘 的相关文章

随机推荐

  • powershell

    常用单行命令 目录 查看当前目录的大小 xff0c 并排序输出 du h max depth 61 1 sort nr 自动选择单位 du m max depth 61 1 sort nr 选择M为单位 转载于 https www cnbl
  • 私有云对企业来说有什么好处

    企业是一个受控集团 xff0c 只有良好的管理 决策 xff0c 一个企业才有成功的希望 xff0c 所以管理在企业中占有重要的地位 私有云的使用是一只无形的手 xff0c 它控制着日常工作中的资源和效率 1 企业拥有基础设施 xff0c
  • JavaScript禁用页面刷新

    JavaScript禁用页面刷新代码如下 xff1a 禁用F5刷新 document onkeydown 61 function if event keyCode 61 61 116 event keyCode 61 0 event can
  • java 整除(/) 求余(%) 运算

    1 java 整除 求余 运算 1 求余 System out println 11 2 顾名思义就是11除2的余数 gt 1 System out println 11 2 结果 gt 1 System out println 11 2
  • C# 解决窗体闪烁

    C 解决窗体闪烁 在Windows窗体上造成 闪烁 的窗体上有很多控制 造成这种闪烁的原因有两个 xff1a 1 当控件需要被绘制时 xff0c Windows发送一个控件两个消息 第一个 xff08 WM ERASEBKGND xff09
  • OVN – OVN OpenStack(二)

    OpenStack networking ovn 项目为Neutron提供了一个基于ML2的OVN插件 xff0c 它使用OVN组件代替了各种Neutron的Python agent xff0c 也不再使用 RabbitMQ xff0c 而
  • 飞秋无法显示局域网好友

    1 飞秋无法显示局域网好友 无法查看网上邻居 无法适用共享打印机的问题是由于开启了 局域网隐身 的缘故 xff0c 打开 360安全卫士 xff1e 功能大全 xff1e 网络优化 xff1e 流量防火墙 xff1e 局域网防护 xff0c
  • pandas 按照某一列进行排序

    pandas排序的方法有很多 xff0c sort values表示根据某一列排序 pd sort values 34 xxx 34 inplace 61 True 表示pd按照xxx这个字段排序 xff0c inplace默认为False
  • 关系数据库和NoSQL结合使用:MySQL + MongoDB

    Home Page 作者使用一个案例来说明MySQL 43 MongoDB结合使用 xff0c 发挥各自所长 xff0c 并且认为他们互补性很强 当然 xff0c 这其中不可避免引入DDD中的编程设计模式 Repository仓储模式 xf
  • 查看网卡信息及状态和网卡日志信息

    查看网卡信息 1 mii tool v w em1 em2 l0 em1 negotiated 100baseTx FD link ok product info vendor 00 aa 00 model 57 rev 1 basic m
  • 筛选出sql 查询结果中 不包含某个字符

    select from table1 where patindex 39 关键字 39 aa 61 0 select from table1 where charindex 39 关键字 39 aa 61 0 select from tab
  • IE8正式版引发VS2005和VS2008添加变量向导出错的解决方案

    1 解决办法1 xff1a 2 卸载IE8 3 解决办法2 xff1a xff08 自己使用的方法 xff09 4 5 打开注册表编辑器 6 7 选择 HKEY CURRENT USER Software Microsoft Windows
  • Visual Studio 2010中文旗舰版+大家所关心的

    下载地址 xff08 VS2010不含MSDN xff09 xff1a http download microsoft com download 2 4 7 24733615 AA11 42E9 8883 E28CDCA88ED5 X16
  • CSS列表

    CSS列表属性可以放置 改变列表项的标志 xff0c 或者将图像作为列表项标志 list style xff1a 简写属性 用于把所有用于列表的属性设置在一个声明中 list style image xff1a 将图像设置为列表项的标志 U
  • Lodash源码讲解-compact函数

    原文首发于Lodash源码讲解 这是我们阅读Lodash源码的第3篇博客 xff0c 在这篇文章里我们来学习一下Lodash的compact方法 compact函数内部没有依赖别的函数 xff0c 让我们先来看一下compact函数的源码
  • CentOS 6.5下Squid代理服务器的安装与配置

    一 系统环境 操作系统 xff1a CentOS release 6 5 Squid版本 xff1a squid 3 1 10 20 el6 5 3 x86 64 SELINUX 61 disabled HTTP Service stope
  • 修改VNCSERVER的分辨率

    使用VNC远程连接时 xff0c 最大化窗口后仍旧在中间显示一个小屏幕 xff0c 并没有随着窗口最大化 xff0c 解决该问题需要首先在VNC窗口标题栏右键 gt Options gt Scaling 选择第二项 xff1a Scale
  • XMLHttpRequest - 原始AJAX初步

    我们知道 xff0c 传统的Web应用是request response形式的 xff0c 即浏览器向服务器发送请求 xff0c 服务器进行处理 xff0c 然后再对浏览器响应 这种形式最大的缺点就是 xff1a 客户端需要等服务器处理完之
  • Python面向对象编程 - 一个记事本程序范例(二)

    给程序加上控制台菜单 menu py import sys from notebook import Notebook Note class Menu 39 39 39 Display a menu and respond to choic
  • 个人代码库の自动粘合桌面边缘

    using System Windows Forms using System namespace public partial class form 必要事件 xff1a No 1 xff1a 窗体的 Move 事件 No 2 xff1a