四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2882|回复: 0
打印 上一主题 下一主题

WinForm 托盘功能的实现

[复制链接]
  • TA的每日心情
    开心
    2022-6-10 09:59
  • 366

    主题

    741

    帖子

    9649

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    9649
    跳转到指定楼层
    楼主
    发表于 2016-10-28 12:55:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    很多程序都有托盘功能,聊天工具更是如此,QQ,飞鸽传书等等,都是以托盘的形式工作在后台,对消息进行监听的.而VS中给我们提供了现成的控件,来完成托盘的功能,下面我结合代码讲解下项目中可能用到的托盘技巧.

    1.如何实现托盘功能:
    在VS中直接添加notifyIcon控件,然后设置下icon属性,给其设置个图标即可,使用托盘功能.


    但是托盘并不能实现我们要求的功能,具体的功能实现,需要我们手工添加代码实现.
    2.如何最小化时自动到托盘
    private void Form1_Resize(object sender, System.EventArgs e)  //调整窗体大小事件
    {  
      if (this.WindowState == FormWindowState.Minimized)  
      {  
      this.Visible = false;  
      this.notifyIcon1.Visible = true;

      //气泡提示
      notifyIcon1.ShowBalloonTip(100, "系统提示", "系统已最小化至托盘", ToolTipIcon.Info);
      }  
    }  
    3.如何双击托盘恢复原状
    private void notifyIcon1_MouseDoubleClick(object sender, System.EventArgs e)  //双击事件
    {  
      this.Visible = true;  
      this.WindowState = FormWindowState.Normal;  
      this.notifyIcon1.Visible = false;  
    }  
    4.实现托盘的闪烁功能(如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;
      }
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-5-26 00:13 , Processed in 1.062500 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表