NotifyIcon类介绍 NotifyIcon 是 .NET中的一个类,它用于在系统托盘中显示图标。这个类在 System.Windows.Forms 命名空间下。使用 NotifyIcon 类,你可以在系统托盘中创建一个图标,当用户点击或右键点击这个图标时,可以触发一些事件。例如,你可以创建一个上下文菜单(右键菜单),或者当用户双击图标时打开一个窗口。
示例 通过设计页面使用 
在设计页面中拖拽添加NotifyIcon:
进行相关设置(在后面通过代码使用时会进行介绍):
这里的contextMenuStrip1也是由自己拖拽来的:
设置contextMenuStrip1:
重写窗体关闭事件处理程序: 
  protected   override   void   OnFormClosing (FormClosingEventArgs e) if  (e.CloseReason == CloseReason.UserClosing) true ;   //  取消关闭窗体 this .Hide();   //  隐藏窗体 this .notifyIcon1.Visible =  true ;   //  显示托盘图标 
双击notifyIcon1写鼠标双击事件处理程序:
  private   void   notifyIcon1_MouseDoubleClick ( object  sender, MouseEventArgs e) this .Show();   //  显示窗体 this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小 this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标 
双击显示窗体按钮,写点击事件处理程序:
  private   void   显示 ToolStripMenuItem_Click( object  sender, EventArgs e) this .Show();   //  显示窗体 this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小 this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标 
双击显示气泡按钮,写点击事件处理程序:
  private   void   显示气泡 2 ToolStripMenuItem_Click( object  sender, EventArgs e) //  显示气泡提示,参数表示提示显示的时间(单位:毫秒) 3000 ); 
双击退出按钮,写点击事件处理程序:
  private   void   退出 ToolStripMenuItem_Click( object  sender, EventArgs e) //  退出应用程序 
查看实现效果:
winform实现最小至系统托盘效果 全部代码:
namespace   Minimized_to_the_system_tray_demo {      public   partial   class   Form1  :  Form     {          public  Form1  ()         {             InitializeComponent();         }                private  void   Form1_Load  (object  sender, EventArgs e )         {         }          protected  override   void   OnFormClosing  (FormClosingEventArgs e )         {              if  (e.CloseReason == CloseReason.UserClosing)             {                 e.Cancel =  true ;   //  取消关闭窗体                  this .Hide();   //  隐藏窗体                  this .notifyIcon1.Visible =  true ;   //  显示托盘图标             }         }          private  void   notifyIcon1_MouseDoubleClick  (object  sender, MouseEventArgs e )         {              this .Show();   //  显示窗体              this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小              this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标         }          private   void   显示 ToolStripMenuItem_Click( object  sender, EventArgs e)         {              this .Show();   //  显示窗体              this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小              this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标         }          private   void   退出 ToolStripMenuItem_Click( object  sender, EventArgs e)         {             Application.Exit();   //  退出应用程序         }          private   void   显示气泡 2 ToolStripMenuItem_Click( object  sender, EventArgs e)         {              //  显示气泡提示,参数表示提示显示的时间(单位:毫秒)             notifyIcon1.ShowBalloonTip( 3000 );         }     } } 
通过代码实现 
首先全局声明一个NotifyIcon对象与一个ContextMenuStrip对象:
  private  NotifyIcon notifyIcon1;   private  ContextMenuStrip menuStrip; 
menuStrip的相关设置:
  //  创建  ContextMenuStrip 。   this .menuStrip =  new  ContextMenuStrip();   //  创建并初始化  ToolStripMenuItem  对象。  ToolStripMenuItem item1 =  new  ToolStripMenuItem( " 显示窗体 " );  item1.Click += ( object ? sender, EventArgs e) =>   {       this .Show();   //  显示窗体       this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小       this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标  };  ToolStripMenuItem item2 =  new  ToolStripMenuItem( " 显示气泡 " );  item2.Click += ( object ? sender, EventArgs e) =>   {       //  显示气泡提示,参数表示提示显示的时间(单位:毫秒)      notifyIcon1.ShowBalloonTip( 3000 );  };  ToolStripMenuItem item3 =  new  ToolStripMenuItem( " 退出 " );  item3.Click += ( object ? sender, EventArgs e) =>   {      Application.Exit();   //  退出应用程序  };   //  将  ToolStripMenuItem  对象添加到  ContextMenuStrip  的  Items  集合中。   this .menuStrip.Items.Add(item1);   this .menuStrip.Items.Add(item2);   this .menuStrip.Items.Add(item3); 
notifyIcon1的相关设置:
  //  创建  NotifyIcon 。   this .notifyIcon1 =  new  NotifyIcon(); // Icon  属性设置将在系统托盘中显示的图标。 notifyIcon1.Icon =  new  Icon( " 你的 ico 图标路径 " "); 属性设置当右键点击系统托盘图标时显示的菜单。 属性设置当鼠标悬停在系统托盘图标上时显示的提示文本。 最小化至系统托盘示例程序 "; 气泡提示相关设置 提示 "; 您有一条新消息 "; 注册鼠标双击事件                             
notifyIcon1鼠标双击事件处理程序: 
  private  void   NotifyIcon1_MouseDoubleClick  (object ? sender, MouseEventArgs e )  {       this .Show();   //  显示窗体       this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小       this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标  } 
重写窗体关闭事件处理程序:
protected  override   void   OnFormClosing  (FormClosingEventArgs e ) {      if  (e.CloseReason == CloseReason.UserClosing)     {         e.Cancel =  true ;   //  取消关闭窗体          this .Hide();   //  隐藏窗体          this .notifyIcon1.Visible =  true ;   //  显示托盘图标     } } 
实现效果与上述相同。
全部代码:
using  System; using  System.Collections.Generic; using  System.ComponentModel; using  System.Data; using  System.Drawing; using  System.Linq; using  System.Text; using  System.Threading.Tasks; using  System.Windows.Forms; namespace   Minimized_to_the_system_tray_demo {      public   partial   class   Form2  :  Form     {          private  NotifyIcon notifyIcon1;          private  ContextMenuStrip menuStrip;          public  Form2  ()         {             InitializeComponent();              //  创建  NotifyIcon 。              this .notifyIcon1 =  new  NotifyIcon();              //  创建  ContextMenuStrip 。              this .menuStrip =  new  ContextMenuStrip();              //  创建并初始化  ToolStripMenuItem  对象。             ToolStripMenuItem item1 =  new  ToolStripMenuItem( " 显示窗体 " );             item1.Click += ( object ? sender, EventArgs e) =>              {                  this .Show();   //  显示窗体                  this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小                  this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标             };             ToolStripMenuItem item2 =  new  ToolStripMenuItem( " 显示气泡 " );             item2.Click += ( object ? sender, EventArgs e) =>              {                  //  显示气泡提示,参数表示提示显示的时间(单位:毫秒)                 notifyIcon1.ShowBalloonTip( 3000 );             };             ToolStripMenuItem item3 =  new  ToolStripMenuItem( " 退出 " );             item3.Click += ( object ? sender, EventArgs e) =>              {                 Application.Exit();   //  退出应用程序             };              //  将  ToolStripMenuItem  对象添加到  ContextMenuStrip  的  Items  集合中。              this .menuStrip.Items.Add(item1);              this .menuStrip.Items.Add(item2);              this .menuStrip.Items.Add(item3);                           // Icon  属性设置将在系统托盘中显示的图标。             notifyIcon1.Icon =  new  Icon( " 你的 ico 图标路径 " );              // ContextMenu  属性设置当右键点击系统托盘图标时显示的菜单。             notifyIcon1.ContextMenuStrip =  this .menuStrip;              // Text  属性设置当鼠标悬停在系统托盘图标上时显示的提示文本。             notifyIcon1.Text =  " 最小化至系统托盘示例程序 " ;             notifyIcon1.Visible =  true ;             notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;             notifyIcon1.BalloonTipTitle =  " 提示 " ;             notifyIcon1.BalloonTipText =  " 您有一条新消息 " ;             notifyIcon1.MouseDoubleClick += NotifyIcon1_MouseDoubleClick;         }          private  void   NotifyIcon1_MouseDoubleClick  (object ? sender, MouseEventArgs e )         {              this .Show();   //  显示窗体              this .WindowState = FormWindowState.Normal;   //  恢复窗体正常大小              this .notifyIcon1.Visible =  false ;   //  隐藏托盘图标         }          private  void   Form2_Load  (object  sender, EventArgs e )         {         }          protected  override   void   OnFormClosing  (FormClosingEventArgs e )         {              if  (e.CloseReason == CloseReason.UserClosing)             {                 e.Cancel =  true ;   //  取消关闭窗体                  this .Hide();   //  隐藏窗体                  this .notifyIcon1.Visible =  true ;   //  显示托盘图标             }         }     } }