借鉴网上的winform模仿QQ窗口停靠功能稍作改动
2015-07-11 15:24:04
1 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms; namespace 窗口停靠
{
public partial class Form1 : Form
{
string location = null;
int y;
int x;
public Form1()
{
InitializeComponent();
} /// <summary> /// 当窗体的位置改变时发生 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_LocationChanged(object sender, EventArgs e)
{
y = this.Location.Y;
x = this.Location.X;
if (this.Top <= )
{ location = "top"; } else if (this.Left <= )
{ location = "left"; } else if (this.Right >= Screen.PrimaryScreen.Bounds.Width)
{ location = "right"; }
else
{
location = "center";
} }
private void timer2_Tick(object sender, EventArgs e)
{ //如果鼠标在窗体上,则根据停靠位置显示整个窗体 if (this.Bounds.Contains(Cursor.Position))
{ switch (location)
{ case "top":
if(this.Location.Y<)
{
y += ;
if(y>)
{
y = ;
}
this.Location = new Point(this.Location.X, y);
}
break; case "left": if(this.Location.X<)
{
x += ;
if(x>)
{
x = ;
}
this.Location = new Point(x, this.Location.Y);
}
break; case "right":
if (this.Location.X > Screen.PrimaryScreen.Bounds.Width - this.Width)
{
x -= ;
if (x < Screen.PrimaryScreen.Bounds.Width - this.Width)
{
x = Screen.PrimaryScreen.Bounds.Width - this.Width;
}
this.Location = new Point(x, this.Location.Y);
}
break; } } else //如果鼠标离开窗体,则根据停靠位置隐藏窗体,但须留出部分窗体边缘以便鼠标选中窗体
{ switch (location)
{ case "top": y = y - ;
if(y>-this.Height+)
{
this.Location = new Point(this.Location.X, y); }
else
{
this.Location = new Point(this.Location.X, -this.Height + );
}
break; case "left":
x -= ;
if(x>-this.Width+)
{
this.Location = new Point(x, this.Location.Y); }
else
{
this.Location = new Point(-this.Width + , this.Location.Y);
}
break; case "right": if(x<Screen.PrimaryScreen.Bounds.Width- )
{
x += ;
this.Location = new Point(x, this.Location.Y); }
else
{
this.Location = new Point(Screen.PrimaryScreen.Bounds.Width + - , this.Location.Y);
}
break;
} } }
} }
改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!! 改个分类也改不了,不能发布至首页发布候选区,我不想发布啊,可是取消不了,还提示没有超过150字!!!,这只是为了凑个字数!!!!!!
借鉴网上的winform模仿QQ窗口停靠功能稍作改动的更多相关文章
- Winform调用QQ发信息并且开机启动 (开源)
前言 公司CS系统需要加入启动qq从winform调用qq聊天窗口的功能,前提是需要将聊天者的QQ号码作为参数传递到函数中,一直没有搞过,正好很感兴趣,就折腾,Winform调用qq,我想肯定是需要一 ...
- winform实现QQ聊天气泡200行代码
c# winform实现QQ聊天气泡界面,原理非常简单,通过webKitBrowser(第三方浏览器控件,因为自带的兼容性差)加载html代码实现,聊天界面是一个纯HTML的代码,与QQ的聊天界面可以 ...
- 模仿QQ空间 网页设计
目的:1.通过模仿QQ空间,全自主写代码,熟悉网页设计的流程 2.熟练的掌握HTML.CSS.JS的应用 3.将在此过程中遇到的问题及其解决方法记录在此,以便取用. 开始: 一.登陆界面(index. ...
- 基于IAccessible接口的QQ窗口信息获取的实现
这个技术现在已经封装成DLL免费开放给大家使用了,详情请加群221487171 可以访问官方网站下载 http://www.guihelper.com/ 主要技术(Microsoft Active A ...
- 用C#代码实现类似QQ窗体的“上、左、右”停靠功能
大家都知道QQ有一个自动停靠功能,即“上.左.右”,当你把窗体拖到屏幕边缘,然后移开鼠标它会自动缩放,然后只显示一小小点出来,我们仔细观察会发现其实它只露3像素左右的边缘,当你鼠标移上去它又会伸出来, ...
- C#绘制三角形并填充,使用winform实现qq聊天气泡
首先是需求,需要制作一个聊天气泡, 但是winform中有没有类似Android的.9图,只有自己设计图形拼接气泡. 第一种是绘制空心三角形,第二种是绘制三角形区域,可以指定RGB颜色. privat ...
- 模仿QQ气泡聊天
尝试了几种方案,想模仿QQ的气泡聊天,总是不尽如意.网上倒是大把的Android和Html的例子,Delphi的没找着,只能自己试着折腾. 1. 用WebBrowser加载本地html,屡次折腾,失败 ...
- Qt 之 模仿 QQ登陆界面——样式篇
一.简述 今天晚上花了半天时间从QQ登录界面抠了些图,顺便加了点样式基本上实现了QQ的登陆界面全部效果.虽不说100%相似,那也有99.99%相似了哈O(∩_∩)O. QQ好像从去年开始,登录界面有了 ...
- 活跃天数计算用户等级模仿QQ的升级方式
QQ等级的算法:设当前等级为N,达到当前等级最少需要的活跃天数为D,当前活跃天数为Dc,升级剩余天数为Dr,则: 从而推出: 好了,引述完成,懒得写字了,贴出代码: 复制内容到剪贴板 代码: < ...
随机推荐
- Application对象的使用-数据传递以及内存泄漏
Application的使用 What is Application Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创 ...
- 微信JSSDK录音的一些bug
UPDATE: 这篇博文已经过期, 新的BUG总结请看微信JSSDK与录音相关的坑 微信JSSDK有不少坑, 最近做一个webapp, 用到了其中的录音功能, 发现不少问题, 总结一下: 当你调用st ...
- jQueryEasyUI中DataGrid的height,width,fit,fitColumns属性
height: 600, //不指定则默认垂直包裹,指定了则固定 width:1200,//不指定则水平100%平铺,指定了则固定 fit:false,//true:高度填充父窗体,忽略height属 ...
- Leetcode 240. Search a 2D Matrix II
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- ArcGIS_系列视频教程::精品大放送
转自:http://www.cnblogs.com/gispeng/archive/2008/11/28/1342758.html ArcGIS_系列视频教程::精品大放送 文件名: ArcG ...
- (转载)SQL联合查询中的关键语法
(转载)http://www.cnblogs.com/zhangliyu/archive/2009/03/21/1418215.html 联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用 ...
- 【转】qtp安装时问题
1.安装qtp后要重启机器. 2.插件选择错误, 处理方式:重新启动QTP,勾选 WEB插件; 3.在安装QTP后,或者禁用IE浏览器里的一些ActiveX控件后,正常录制QTP时,对象识别不了;(保 ...
- WCF、.Net Remoting、Web Service概念及区别
此文章主要参考http://www.cnblogs.com/weiweibtm/archive/2013/06/21/3148583.html 参考书籍<WCF全面解析上册>.<WC ...
- Bzoj 1901: Zju2112 Dynamic Rankings 树套树,线段树,平衡树,Treap
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6471 Solved: 2697[Su ...
- Linux开机自动挂载Windows分区
使用Linux的朋友肯定都不会对本文所谈的内容陌生,在Linux系统里,通常不会开机自动挂载Windows文件系统下的分区.Ubuntu系统下要点击Windows分区才会挂载,Fedora下则甚至要输 ...