C# WinForm最小化到托盘以及托盘右键菜单
C# 2018-09-12 18:01:12

一、添加控件 

 

首先,先拖一个NotifyIcon到主窗体,然后设置NotifyIcon的图标,不然等下最小化后,都找不到那个程序了,还有那个Text也是,不写名字,就默认是NotifyIcon了..如下图:

2.png

 

二、添加双击事件

然后双击NotifyIcon,代码如下:

C/C++ Code复制内容到剪贴板
  1. /// <summary>  
  2. /// 添加双击托盘图标事件(双击显示窗口)  
  3. /// </summary>  
  4. /// <param name="sender"></param>  
  5. /// <param name="e"></param>  
  6. private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)  
  7. {  
  8.     if (WindowState == FormWindowState.Minimized)  
  9.     {  
  10.         //还原窗体显示      
  11.         WindowState = FormWindowState.Normal;  
  12.         //激活窗体并给予它焦点  
  13.         this.Activate();  
  14.         //任务栏区显示图标  
  15.         this.ShowInTaskbar = true;  
  16.         //托盘区图标隐藏  
  17.         notifyIcon1.Visible = false;  
  18.     }  
  19. }  

 

 3.png

C/C++ Code复制内容到剪贴板
  1. /// <summary>  
  2. /// 判断是否最小化,然后显示托盘  
  3. /// </summary>  
  4. /// <param name="sender"></param>  
  5. /// <param name="e"></param>  
  6. private void F_Main_SizeChanged(object sender, EventArgs e)  
  7. {  
  8.     //判断是否选择的是最小化按钮  
  9.     if (WindowState == FormWindowState.Minimized)  
  10.     {  
  11.         //隐藏任务栏区图标  
  12.         this.ShowInTaskbar = false;  
  13.         //图标显示在托盘区  
  14.         notifyIcon1.Visible = true;  
  15.     }  
  16. }  

 

 4.png

C/C++ Code复制内容到剪贴板
  1. //  Form_Closing是窗口即将关闭时询问你是不是真的关闭才有Cancel事件  
  2. /// <summary>  
  3. /// 确认是否退出  
  4. /// </summary>  
  5. /// <param name="sender"></param>  
  6. /// <param name="e"></param>  
  7. /// 只有Form_Closing事件中 e.Cancel可以用。  
  8. /// 你的是Form_Closed事件。 Form_Closed事件时窗口已关了 ,Cancel没用了;  
  9. private void F_Main_FormClosing(object sender, FormClosingEventArgs e)  
  10. {  
  11.     if (MessageBox.Show("是否确认退出程序?""退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)  
  12.     {  
  13.         // 关闭所有的线程  
  14.         this.Dispose();  
  15.         this.Close();  
  16.     }  
  17.     else  
  18.     {  
  19.         e.Cancel = true;  
  20.     }  
  21. }  

 

 


 

下面是托盘右键菜单的制作:
先拖一个ContextMenuStrip到主界面,然后添加你的右键菜单,在然后绑定给NotifyIcon即可,图形如代码如下

 5.png

 

点击:6.png

添加你的右键菜单,在然后绑定给NotifyIcon

7.png

 

 

C/C++ Code复制内容到剪贴板
  1. //  添加托盘程序右键菜单项  
  2. //  最小化  
  3. //  添加日期 --  2018-09-12 18:31  
  4. private void toolStripMenuItemMinimize_Click(object sender, EventArgs e)  
  5. {  
  6.     this.WindowState = FormWindowState.Minimized;  
  7.     this.notifyIcon1.Visible = true;  
  8.     this.Hide();  
  9. }  

 

添加好菜单以后,双击添加方法:

C/C++ Code复制内容到剪贴板
  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.     DoorBaseInfo(sender,e);  
  9. }  
  10.   
  11. /// <summary>  
  12. /// 托盘右键退出程序  
  13. /// </summary>  
  14. /// <param name="sender"></param>  
  15. /// <param name="e"></param>  
  16. private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)  
  17. {  
  18.     if (MessageBox.Show("是否确认退出程序?""退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)  
  19.     {  
  20.         // 关闭所有的线程  
  21.         this.Dispose();  
  22.         this.Close();  
  23.        Application.Exit();
  24.     }  
  25. }  

 

 

本文来自于:http://www.yoyo88.cn/study/net/367.html

Powered by yoyo苏ICP备15045725号