欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

在Form项目中实现窗体最小化到托盘(并实现闪烁功能)

创建时间:2011年07月25日 22:42  阅读次数:(7113)
分享到:
原来一直以为将一个窗体最小化到托盘会有一段很长很难的代码。今天在做一个项目时,突然想用到这个功能,就到网上搜索了一下,原来实现最小化到托盘竟如此的简单。

在工具栏中托一个notifyIcon控件,然后在调整窗口大小的事件中设置控件的显示,如下代码:
private void Form1_Resize(object sender, System.EventArgs e)  //调整窗体大小事件 
{  
  if (this.WindowState == FormWindowState.Minimized)  
  {  
  this.Visible = false;  
  this.notifyIcon1.Visible = true;  
  }  
}


那么如何恢复窗体呢?在nofifyIcon控件的双击事情中恢复即可,如下代码:
private void notifyIcon1_MouseDoubleClick(object sender, System.EventArgs e)  //双击事件
{  
  this.Visible = true;  
  this.WindowState = FormWindowState.Normal;  //窗口恢复默认大小
  this.notifyIcon1.Visible = false;  
 

继续往下研究:
我们怎么实现托盘的闪烁功能呢?(如QQ有消息时的闪烁)

  (1).首先我们在空白窗体中拖入一个NotifyIcon控件和定时控件
private System.Windows.Forms.NotifyIcon notifyIcon1;
 private System.Windows.Forms.Timer timer1;


  (2).其次,我们准备两张ico图片,用来显示在任务栏,其中一张可用透明的ico图片,
  分别叫做1.ico和2.ico;并且建立两个icon对象分别用来存放两个ico图片;
private Icon ico1 = new Icon("1.ico");
 private Icon ico2 = new Icon("2.ICO");//透明的图标


  (3).在Form_load中初始化notifyicon:
private void Form1_Load(object sender, System.EventArgs e)
  {
  this.notifyIcon1.Icon=ico1;//设置程序刚运行时显示在任务栏的图标
  this.timer1.Enable = true;//将定时控件设为启用,默认为false;
  }

  (4).先设置一个全局变量 i ,用来控制图片索引,然后创建定时事件,双击定时控件就可以编辑
 
 int i=0;
  private void timer1_Tick(object sender, System.EventArgs e)
  {
  //如果i=0则让任务栏图标变为透明的图标并且退出
  if(i<1)
  {
  this.notifyIcon1.Icon=ico2;
  i++;
  return;
  }
   //如果i!=0,就让任务栏图标变为ico1,并将i置为0;
  else
  this.notifyIcon1.Icon=ico1;
  i=0;
  }
L
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 50+0=? 的结果(结果是:50)
结  果: