代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
自动粘合桌面边缘
作者:
asion
/ 发布于
2011/4/26
/
718
<div><span style="color: rgb(0,0,255)">using</span><span style="color: rgb(0,0,0)"> System.Windows.Forms; </span><span style="color: rgb(0,0,255)">using</span><span style="color: rgb(0,0,0)"> System; </span><span style="color: rgb(0,0,255)">namespace</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">**</span><span style="color: rgb(0,0,0)"> { </span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">partial</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">***</span><span style="color: rgb(0,0,0)">: form { </span><span style="color: rgb(0,128,0)">/*</span><span style="color: rgb(0,128,0)"> 【必要事件】: * No.1:窗体的 Move 事件。 * No.2:窗体的 MouseEnter事件。 * No.3:MouseLeave事件。在窗体的“deactivated”事件 + 窗体中[所有的控件]leave的事件中都加入该事件。 * 将“**”更改为最终要使用的窗体的namespace。 </span><span style="color: rgb(0,128,0)">*/</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">int</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">7</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">边缘像素。即当窗体缩回去的时候,露出来多少像素,来提示窗体位置。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,128,128)">///</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)"><summary></span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)">///</span><span style="color: rgb(0,128,0)"> 自动粘合桌面边缘。 </span><span style="color: rgb(128,128,128)">///</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)"></summary></span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)">///</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)"><param name="intJingDu"></span><span style="color: rgb(0,128,0)">自动粘合的精度,默认10像素。</span><span style="color: rgb(128,128,128)"></param></span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)">///</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(128,128,128)"><param name="LeftRight"></span><span style="color: rgb(0,128,0)">是否启动在接近桌面左右边缘时也自动粘合。</span><span style="color: rgb(128,128,128)"></param></span><span style="color: rgb(128,128,128)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">private</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)"> myMethod_AutoAbsorb(</span><span style="color: rgb(0,0,255)">int</span><span style="color: rgb(0,0,0)"> intJingDu , </span><span style="color: rgb(0,0,255)">bool</span><span style="color: rgb(0,0,0)"> LeftAndRight) { </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">小于10像素.则使用默认10像素。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( intJingDu </span><span style="color: rgb(0,0,0)"><=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">10</span><span style="color: rgb(0,0,0)"> ) intJingDu </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">10</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">只有在窗体!不在!桌面的边缘的时候,才开始判断是否开始吸附。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Left </span><span style="color: rgb(0,0,0)">!=</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Width </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)">!=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Top </span><span style="color: rgb(0,0,0)">!=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)"> ) { </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">当窗体靠近桌面"上方"的时候,开始粘合。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Location.Y </span><span style="color: rgb(0,0,0)"><=</span><span style="color: rgb(0,0,0)"> intJingDu </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Location.Y </span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Height </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) Top </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( LeftAndRight </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">true</span><span style="color: rgb(0,0,0)"> ) { </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">当窗体靠近桌面的"左边缘"时候,开始粘合。 </span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Location.X </span><span style="color: rgb(0,0,0)"><=</span><span style="color: rgb(0,0,0)"> intJingDu </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Location.X </span><span style="color: rgb(0,0,0)">></span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">Size.Width </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">当窗体靠近桌面“右边缘”的时候,开始粘合。WorkingArea获得桌面的尺寸的属性。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Location.X </span><span style="color: rgb(0,0,0)">>=</span><span style="color: rgb(0,0,0)"> ( SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> intJingDu ) </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)"><</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> Size.Width; } } } </span><span style="color: rgb(0,0,255)">private</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)"> myMethod_AutoAbsorb_MouseEnter() { </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Top </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Height </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">上边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Top </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Left </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Width </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">左边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)">; </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Left </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">右边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.Size.Width; } </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">在窗体的deactivated事件 + 窗体中所有的控leave件的事件中都加入以下事件。这样勉强达到效果。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">private</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)"> myMethod_AutoAbsorb_MouseLeave() { </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">只有鼠标不在窗体的内部范围的时候,才开始缩回去。</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( </span><span style="color: rgb(0,0,0)">!</span><span style="color: rgb(0,0,0)">( ( Control.MousePosition.X </span><span style="color: rgb(0,0,0)">>=</span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Control.MousePosition.X </span><span style="color: rgb(0,0,0)"><=</span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> Width ) </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> ( Control.MousePosition.Y </span><span style="color: rgb(0,0,0)">>=</span><span style="color: rgb(0,0,0)"> Top </span><span style="color: rgb(0,0,0)">&&</span><span style="color: rgb(0,0,0)"> Control.MousePosition.Y </span><span style="color: rgb(0,0,0)"><=</span><span style="color: rgb(0,0,0)"> Top </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> Height ) ) ) { </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Top </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)"> ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">上边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> Top </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">Size.Height </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu; </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Left </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(128,0,128)">0</span><span style="color: rgb(0,0,0)"> ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">左边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)">Size.Width </span><span style="color: rgb(0,0,0)">+</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu; </span><span style="color: rgb(0,0,255)">if</span><span style="color: rgb(0,0,0)"> ( Left </span><span style="color: rgb(0,0,0)">==</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> Size.Width ) </span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">右边缘</span><span style="color: rgb(0,128,0)"> </span><span style="color: rgb(0,0,0)"> Left </span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)"> SystemInformation.WorkingArea.Width </span><span style="color: rgb(0,0,0)">-</span><span style="color: rgb(0,0,0)"> intBianYuanXiangSu; } } } } </span></div>
试试其它关键字
粘合桌面
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
asion
贡献的其它代码
(
10
)
.
只允许运行一个窗体实例
.
C#可移动按钮“相关代码”
.
XML操作演练
.
创建快捷方式
.
自定义不规则窗体和控件
.
自定义后缀名
.
自动粘合桌面边缘
.
设置窗体效果AnimateWindow
.
全局快捷键
.
模拟QQ振屏功能
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3