设计思路:1.使用定时器(Timer)来监控鼠标位置和窗体位置,并实现窗体的停靠和隐藏2.当鼠标拖动窗体时,窗体才有可能根据自身位置决定是否停靠3.如果窗体四周没有接触到屏幕边缘则不会停靠4.如果窗体最小化或最大化了则不存在停靠和隐藏5.如果鼠标拖动窗体时,如果窗体很接近屏幕边缘则自动将其停靠在该边缘,例如窗体离屏幕顶部小于4个像素则自动将其停靠在顶部6.窗体可以在桌面的左侧.右侧和顶部停靠和隐藏7.如果既满足顶部停靠的条件又满足侧面停靠的条件,则规定其向侧面隐藏8.当鼠标位于窗体内部时,窗体不…
[DllImport("User32.dll")] public static extern bool PtInRect(ref Rectangle Rects, Point lpPoint); private void timerShowHide_Tick(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Normal) { System.Drawing.Point cursorPoint =…
C#利用API制作类似QQ一样的右下角弹出窗体 (2009-03-21 15:02:49) 转载▼ 标签: 杂谈 分类: .NET using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.Inter…
大家都知道QQ有一个自动停靠功能,即“上.左.右”,当你把窗体拖到屏幕边缘,然后移开鼠标它会自动缩放,然后只显示一小小点出来,我们仔细观察会发现其实它只露3像素左右的边缘,当你鼠标移上去它又会伸出来,介于普通入门级学者要求艾伟就在这里给需要的朋友们分享分享我是怎么实现的,代码很少,效果如下: 先在当前类里弄几个变量,方便逻辑判断: QQ_MODE(用于记录窗体当前的停靠状态,即0为不停靠,1为X轴,2为Y轴,3为顶部),QQ_T(窗体缩放时显示出来的边缘大小),QQ_XY(鼠标坐标与窗体边缘多少…
原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右下角会显示一个窗体,一般情况下该窗体会隐藏停靠在右边,只露出很小部分,当鼠标移动到这个很小部分时,窗体全部显示,显示过程是从右边滑动到左边,当鼠标离开窗体时,窗体需要隐藏在右边,只露出很小部分,隐藏过程是从左边滑动到右边. 实现此类效果我碰到的连个难点是:1.如何判断鼠标离开了窗体?2.窗体显示隐藏…
.net winForm 实现类似qq 弹出新闻   一.背景: echong 之前一直用 公司大牛c语言写的一个弹出托管,前几天写东西的时候发现com调用不是那么好使.而手头上写的这个东西又是.net 环境下C#实现的.调用的时候有些背景图片logo不好调用,索性直接用.net写一个.东西很简单,写出来只是做个记录整理. 二.相关问题的提出和解决: 1.展现形式 1)最容易想到的自然是窗体的形式,考虑的窗的美观. 2)窗体原来的边框样式FormBorderStyle = none 3)然后用个…
窗体和控件的属性CreateParams(这真的是一个属性)很神奇,因为通过它你能够很方便的控制窗体或控件诸如边框.最大化最小化关闭按钮的隐藏.窗体的模式化弹窗模式等的一些特性.虽然,CreateParams有者如此巨大的潜力,但是在使用时要相当慎重,如果你不了解CreateParams这个属性的话,反而会是你在编写其他代码的时候非常疑惑. 引用MSDN中对CreateParams的说明: 在你开发的重载控件中不要重写这个属性,通过这个属性控制控件的某些风格.只有在你封装Windows控件或者想…
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始化方法.如: public void reLoad_method() { //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新 } fuForm中打开ziForm时需要设置所有者,就是ziForm的所有者是fuForm,代码如下: ziForm _ziForm =…
//C# WinForm 单例模式(例:同一个窗体只创建一次实例) //打开窗体的事件: Form3 f = Form3.InstanceObject() ; //实例化窗体 f.Focus(); //让窗体获得焦点 f.Show(); //显示窗体 //被打开的窗体: public partial class Form3 : Form { public Form3() { InitializeComponent(); } private static Form3 _instance; //创建…
[前提]一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作. [解决方案] 1.在窗体A中定义:public static double a;// 如果你的TextBox控件有初始默认值,这里一定要改为public static double a=初始值;否则初始值默认为0 2.在窗体A添加函数: public void textBox1_TextChanged(object sender, System.EventArgs e) { a =…