C#实现右下角托盘程序,默认不显示窗体,关闭窗体时隐藏而不退出

  • C#实现右下角托盘程序,默认不显示窗体,关闭窗体时隐藏而不退出已关闭评论
  • 177 次浏览
  • A+
所属分类:.NET技术
摘要

Windows右下角托盘程序是Windows系统的一大特色。在某些场景非常适用。C#中提供了notifyIcon组件实现托盘程序。因业务需要实现一个假后台程序,开机自动启动且默认不显示窗体,点击图片图标时弹出窗体,关闭时隐藏而不退出,点右键可以退出。

Windows右下角托盘程序是Windows系统的一大特色。在某些场景非常适用。C#中提供了notifyIcon组件实现托盘程序。因业务需要实现一个假后台程序,开机自动启动且默认不显示窗体,点击图片图标时弹出窗体,关闭时隐藏而不退出,点右键可以退出。

C#实现右下角托盘程序,默认不显示窗体,关闭窗体时隐藏而不退出

 

托盘组件的应用

参考:

 

隐藏与显示窗体

大家都知道,Windows的窗口右上角有最小化、最大化、关闭三个按钮。如果将窗口最小化后,桌面上就没有窗体了,只会在任务栏显示,如果用代码将任务栏也显示也去掉那就真正隐藏了窗口了。

本例子就是使用此方式实现窗口隐藏的。当然隐藏窗口的方法有种,这种是较为简单不绕弯的一种。

 

右键菜单

拖拽ContextMenuStrip组件到窗体实现右键菜单

 

代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; using System.Windows.Forms.Design;  namespace U8FileTransfer {     public partial class Main : Form     {         public Main()         {             // 程序默认启动时隐藏窗体             windowDisplay(false);              InitializeComponent();         }          private void Main_Load(object sender, EventArgs e)         {         }          /// <summary>         /// 自定义方法:窗体的隐藏与显示         /// </summary>         /// <param name="display"></param>         private void windowDisplay(bool display)         {             if (display)             {                 this.WindowState = FormWindowState.Normal; // 窗口常规化                 this.ShowInTaskbar = true; // 显示在任务栏             }             else             {                 this.WindowState = FormWindowState.Minimized; // 窗口最小化                 this.ShowInTaskbar = false; // 不显示在任务栏             }          }          // 点击托盘图标显示出窗体         private void notifyIcon_Click(object sender, EventArgs e)         {             // 需要将事件转换成鼠标事件             MouseEventArgs mouseEvent = (MouseEventArgs)e;             if (mouseEvent.Button == MouseButtons.Left) // 点击左键才弹出             {                 windowDisplay(true);             }         }           // 点击右上角X时仅隐藏窗体不退出         private void Main_Closing(object sender, FormClosingEventArgs e)         {             windowDisplay(false);             e.Cancel = true;         }          // 在托盘图标右键点菜单“显示界面”时显示窗体         private void showWindowMenuItem_Click(object sender, EventArgs e)         {             windowDisplay(true);         }          // 在托盘图标右键点菜单“退出”时退出程序         private void exitMenuItem_Click(object sender, EventArgs e)         {             Application.Exit();         }      } }