1:  private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件
   2:          {
   3:              int a = Control.MousePosition.Y;//光标的在屏幕中的 Y 坐标
   4:              int b = Control.MousePosition.X;//光标的在屏幕中的 X 坐标
   5:              int height = Screen.PrimaryScreen.WorkingArea.Height;//屏幕的高
   6:              int width = Screen.PrimaryScreen.WorkingArea.Width;//屏幕的宽
   7:              int x = this.Left;//窗体的在屏幕中的X坐标
   8:              int y = this.Top;//窗体的在屏幕中的Y坐标
   9:              //判断光标是否在窗体内
  10:              if (b >= x && b <= (this.Width + x) && a >= y && a <= (this.Top + this.Height))
  11:              {
  12:                  return;
  13:              }
  14:              else
  15:              {//隐藏窗体
  16:                  if ((x + this.Width) >= width)
  17:                  {
  18:                      this.Top = this.Top;
  19:                      this.Left = width - 5;
  20:                  }
  21:                  else if (x <= 0)
  22:                  {
  23:                      this.Top = this.Top;
  24:                      this.Left = 5 - this.Width;
  25:                  }
  26:                  else if (y <= 0)
  27:                  {
  28:                      this.Left = this.Left;
  29:                      this.Top = 5 - this.Height;
  30:   
  31:                  }
  32:                  else
  33:                  {
  34:   
  35:                      return;
  36:                  }
  37:              }
  38:          }
  39:   
  40:  //光标离开窗体
  41:          private void MainForm_MouseLeave(object sender, EventArgs e)
  42:          {
  43:              Yincangtimer.Start();
  44:          }
  45:          //光标进入窗体
  46:          private void MainForm_MouseEnter(object sender, EventArgs e)
  47:          {
  48:              int height = Screen.PrimaryScreen.WorkingArea.Height;//屏幕的高
  49:              int width = Screen.PrimaryScreen.WorkingArea.Width;//屏幕的宽
  50:         
  51:              if (this.Left < 0)
  52:              {
  53:                  this.Left = 0;
  54:                  this.Top = this.Top;
  55:                  Yincangtimer.Stop();
  56:              }
  57:              else if (this.Left > width - this.Width)
  58:              {
  59:                  this.Left = width - this.Width;
  60:                  this.Top = this.Top;
  61:                  Yincangtimer.Stop();
  62:              }
  63:              else if (this.Top <= 0)
  64:              {
  65:                  this.Left = this.Left;
  66:                  this.Top = 0;
  67:                  Yincangtimer.Stop();
  68:              }
  69:   
  70:              else
  71:              { return; }
  72:          }

C#中让窗体自动靠边隐藏的更多相关文章

  1. QQ揭秘:如何实现窗体靠边隐藏?【低调赠送:QQ高仿版GG 4.2 最新源码】

    QQ有个靠边隐藏的功能,使用起来很方便:在屏幕上拖动QQ的主窗体,当窗体的上边沿与屏幕的上边沿对齐时,主窗体就会duang~~地隐藏起来,当将鼠标移到屏幕上边沿的对应区域时,主窗体又会duang~~显 ...

  2. c# winform 中的 工具栏自动隐藏 splitter用法 带源码

    c# winform 中的 工具栏自动隐藏 splitter用法 带源码 代码下载地址 http://download.csdn.net/detail/simadi/7649313

  3. C#如何实现类似QQ那样靠边隐藏的功能

    http://www.cnblogs.com/yechensi/archive/2009/08/02/1537145.html C#如何实现类似QQ那样靠边隐藏的功能 你想过为自己的程序添加靠边隐藏的 ...

  4. WPF中不规则窗体与WebBrowser控件的兼容问题解决办法

    原文:WPF中不规则窗体与WebBrowser控件的兼容问题解决办法 引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序. ...

  5. 自动显示隐藏布局的listView

    借助View的OnTouchListener接口来监听listView的滑动,通过比较与上次坐标的大小,判断滑动方向,并通过滑动方向来判断是否需显示或者隐藏对应的布局,并且带有动画效果. 1.自动显示 ...

  6. C#中WinForm窗体事件的执行次序

    C#中WinForm窗体事件的执行次序如下: 当 Windows Form 应用程序启动时,会以下列顺序引发主要表单的启动事件:        System.Windows.Forms.Control ...

  7. ASP.NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

  8. Delphi中的窗体创建与销毁

    Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...

  9. Windows Mobile X图标如何销毁窗体而非隐藏

    在Windows Mobile窗体上,有“OK”和“X”两种形式按钮.1.在Form的属性里,设置“MinimizeBox=false”,则窗体显示”OK”,点击该按钮窗体销毁并退出.2.设置“Min ...

随机推荐

  1. CSS+DIV布局初练—DIV元素必须成对出现?

    一直做C/S开发的工作,但是很少做和布局相关的工作,往往都是同事将界面设计好,自己填写代码而已,对于B/S的工作,做过,但是很少没有像C/S这么多,界面布局的话,更无从谈起. 日子就这么过,一天一个样 ...

  2. VC编程技巧:IE控件的高级用法

    一.如何显示内存中的 HTML 网页 二.屏蔽 IE 控件的上下文菜单 三.扩展 HTML 脚本中的 external 对象 四.显示 HTML 样式的对话窗 五.执行 HTML 脚本 http:// ...

  3. ServletContext对象

    **1 ServletContext对象   1)在web应用中,由服务器创建的唯一的一个对象是ServletContext   2)ServletContext对象在每一个Servlet中取得都是相 ...

  4. poj 3259 Wormholes(最短路 Bellman)

    题目:http://poj.org/problem?id=3259 题意:一个famer有一些农场,这些农场里面有一些田地,田地里面有一些虫洞,田地和田地之间有路,虫洞有这样的性质: 时间倒流.问你这 ...

  5. Compass 编译.scss文件的问题

    compass 命令编译scss文件存在一个问题: 不能对"_"下划线开头的scss文件名称的文件进行编译.将"_"去掉就可以啦

  6. 【持续更新】D3 的学习资料

    经常有朋友问哪里有关于 D3 的比较好的学习资料,现整理成此文.以后找到更多更好的,会不断更新本文. 我是在2013年开始接触 D3 的,当时就觉得这个工具很好玩.至今,学习资料整理了不少.如果有朋友 ...

  7. 错误 1 在应用程序级别之外使用注册为 allowDefinition='

    原文:错误 1 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的,银流沙 昨天运行一个.NET网站项目时,出现了以下问题: 在应 ...

  8. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.6

    If $\sen{A}<1$, then $I-A$ is invertible, and $$\bex (I-A)^{-1}=I+A+A^2+\cdots, \eex$$ aa converg ...

  9. mycat分布式mysql中间件(数据库切分概述)[转]

    mysql数据库切分 前言 通 过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时 候,我们还是会面临到扩展 ...

  10. HDU 5699 货物运输 二分判定

    转自:http://blog.csdn.net/jtjy568805874/article/details/51480479 #include <cstdio> #include < ...