Winforms中使用系统托盘图标

1.在form窗体中拖入notifyIcon控件。

2.设置控件的text属性和指定ICO图标文件。

3.运行程序,发现右下角的出现了系统托盘。

更多技巧:

1.添加右键菜单:

在窗体上拖入contextMenuStrip控件,设置notifyIcon控件的contextMenuStrip属性名称为拖入的contextMenuStrip控件名称。

2.窗口关闭时窗口隐藏,通过右键菜单显示和关闭:

代码如下:

设置窗口的关闭为隐藏:

   1: bool isClose = false;//设置标示 标示窗口是否真正关闭
   2:       private void Form5_FormClosing(object sender, FormClosingEventArgs e)
   3:       {
   4:           //如果不是真正关闭 则取消关闭事件 讲窗体设置为隐藏
   5:           if (!isClose)
   6:           {
   7:               e.Cancel = true; 
   8:               this.Visible = false;
   9:           }
  10:       }

使用托盘的右键菜单关闭窗体:

   1: /// <summary>
   2: // 托盘的右键关闭菜单 真正关闭窗体
   3: /// </summary>
   4: /// <param name="sender"></param>
   5: /// <param name="e"></param>
   6: private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
   7: {
   8:     
   9:     isClose = true;
  10:     Application.Exit();
  11: }

使用托盘的右键菜单显示隐藏的窗体:

   1: /// <summary>
   2: // 托盘的右键显示菜单 显示隐藏的窗体
   3: // </summary>
   4: // <param name="sender"></param>
   5: // <param name="e"></param>
   6: rivate void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
   7:  
   8:    this.Visible = true;

3.窗口最小化到系统托盘上

使用窗体SizeChanged事件隐藏窗体:

   1: /// <summary>
   2: /// 设置系统状态为最小化的时候 窗体隐藏  注意使用的SizeChanged事件
   3: /// </summary>
   4: /// <param name="sender"></param>
   5: /// <param name="e"></param>
   6: private void Form5_SizeChanged(object sender, EventArgs e)
   7: {
   8:     //判断状态为最小化状态时隐藏窗体
   9:     if (this.WindowState == FormWindowState.Minimized)
  10:     {
  11:         this.Visible = false;
  12:     }
  13: }

使用托盘右键菜单显示隐藏的窗体,并设置窗体的显示方式为正常状态:

   1: /// <summary>
   2: // 托盘的右键显示菜单 显示隐藏的窗体
   3: // </summary>
   4: // <param name="sender"></param>
   5: // <param name="e"></param>
   6: rivate void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
   7:  
   8:    this.Visible = true;
   9:    this.WindowState = FormWindowState.Normal;//设置显示状态为正常状态

4.双击系统托盘图标显示和隐藏窗体

使用notifyIcon控件的DoubleClick事件:

   1: /// <summary>
   2: /// notifyIcon控件的DoubleClick事件 
   3: /// </summary>
   4: /// <param name="sender"></param>
   5: /// <param name="e"></param>
   6: private void notifyIcon1_DoubleClick(object sender, EventArgs e)
   7: {
   8:     bool isShow = this.Visible == true ? false : true;
   9:     this.Visible = isShow;
  10: }

 

全部代码如下:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.ComponentModel;
   4: using System.Data;
   5: using System.Drawing;
   6: using System.Linq;
   7: using System.Text;
   8: using System.Windows.Forms;
   9:  
  10: namespace TestApp
  11: {
  12:     /// <summary>
  13:     /// 系统托盘演示
  14:     /// 樊凯
  15:     /// http://kay.cnblogs.com
  16:     /// </summary>
  17:     public partial class Form5 : Form
  18:     {
  19:         public Form5()
  20:         {
  21:             InitializeComponent();
  22:         }
  23:  
  24:         private void Form5_Load(object sender, EventArgs e)
  25:         {
  26:  
  27:         }
  28:         bool isClose = false;//设置标示 标示窗口是否真正关闭
  29:         private void Form5_FormClosing(object sender, FormClosingEventArgs e)
  30:         {
  31:             //如果不是真正关闭 则取消关闭事件 讲窗体设置为隐藏
  32:             if (!isClose)
  33:             {
  34:                 e.Cancel = true; 
  35:                 this.Visible = false;
  36:             }
  37:         }
  38:  
  39:         /// <summary>
  40:         /// 托盘的右键关闭菜单 真正关闭窗体
  41:         /// </summary>
  42:         /// <param name="sender"></param>
  43:         /// <param name="e"></param>
  44:         private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
  45:         {
  46:             
  47:             isClose = true;
  48:             Application.Exit();
  49:         }
  50:         /// <summary>
  51:         /// 托盘的右键显示菜单 显示隐藏的窗体
  52:         /// </summary>
  53:         /// <param name="sender"></param>
  54:         /// <param name="e"></param>
  55:         private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
  56:         {
  57:             this.Visible = true;
  58:             this.WindowState = FormWindowState.Normal;//设置显示状态为正常状态
  59:         }
  60:  
  61:         /// <summary>
  62:         /// 设置系统状态为最小化的时候 窗体隐藏  注意使用的SizeChanged事件
  63:         /// </summary>
  64:         /// <param name="sender"></param>
  65:         /// <param name="e"></param>
  66:         private void Form5_SizeChanged(object sender, EventArgs e)
  67:         {
  68:             //判断状态为最小化状态时隐藏窗体
  69:             if (this.WindowState == FormWindowState.Minimized)
  70:             {
  71:                 this.Visible = false;
  72:             }
  73:         }
  74:  
  75:         /// <summary>
  76:         /// notifyIcon控件的DoubleClick事件 
  77:         /// </summary>
  78:         /// <param name="sender"></param>
  79:         /// <param name="e"></param>
  80:         private void notifyIcon1_DoubleClick(object sender, EventArgs e)
  81:         {
  82:             bool isShow = this.Visible == true ? false : true;
  83:             this.Visible = isShow;
  84:         }
  85:     }
  86: }

 

The End!

posted @ 2008-07-31 22:24  樊凯  阅读(1061)  评论(1编辑  收藏  举报