翼度科技»论坛 编程开发 .net 查看内容

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

5

主题

5

帖子

15

积分

新手上路

Rank: 1

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

 
托盘组件的应用

参考:
https://blog.csdn.net/qq_25702235/article/details/128775998https://www.5axxw.com/questions/simple/5btahv 
隐藏与显示窗体

大家都知道,Windows的窗口右上角有最小化、最大化、关闭三个按钮。如果将窗口最小化后,桌面上就没有窗体了,只会在任务栏显示,如果用代码将任务栏也显示也去掉那就真正隐藏了窗口了。
本例子就是使用此方式实现窗口隐藏的。当然隐藏窗口的方法有种,这种是较为简单不绕弯的一种。
 
右键菜单

拖拽ContextMenuStrip组件到窗体实现右键菜单
 
代码:
  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. using System.Reflection;
  10. using System.IO;
  11. using System.Windows.Forms.Design;
  12. namespace U8FileTransfer
  13. {
  14.     public partial class Main : Form
  15.     {
  16.         public Main()
  17.         {
  18.             // 程序默认启动时隐藏窗体
  19.             windowDisplay(false);
  20.             InitializeComponent();
  21.         }
  22.         private void Main_Load(object sender, EventArgs e)
  23.         {
  24.         }
  25.         /// <summary>
  26.         /// 自定义方法:窗体的隐藏与显示
  27.         /// </summary>
  28.         /// <param name="display"></param>
  29.         private void windowDisplay(bool display)
  30.         {
  31.             if (display)
  32.             {
  33.                 this.WindowState = FormWindowState.Normal; // 窗口常规化
  34.                 this.ShowInTaskbar = true; // 显示在任务栏
  35.             }
  36.             else
  37.             {
  38.                 this.WindowState = FormWindowState.Minimized; // 窗口最小化
  39.                 this.ShowInTaskbar = false; // 不显示在任务栏
  40.             }
  41.         }
  42.         // 点击托盘图标显示出窗体
  43.         private void notifyIcon_Click(object sender, EventArgs e)
  44.         {
  45.             // 需要将事件转换成鼠标事件
  46.             MouseEventArgs mouseEvent = (MouseEventArgs)e;
  47.             if (mouseEvent.Button == MouseButtons.Left) // 点击左键才弹出
  48.             {
  49.                 windowDisplay(true);
  50.             }
  51.         }
  52.         // 点击右上角X时仅隐藏窗体不退出
  53.         private void Main_Closing(object sender, FormClosingEventArgs e)
  54.         {
  55.             windowDisplay(false);
  56.             e.Cancel = true;
  57.         }
  58.         // 在托盘图标右键点菜单“显示界面”时显示窗体
  59.         private void showWindowMenuItem_Click(object sender, EventArgs e)
  60.         {
  61.             windowDisplay(true);
  62.         }
  63.         // 在托盘图标右键点菜单“退出”时退出程序
  64.         private void exitMenuItem_Click(object sender, EventArgs e)
  65.         {
  66.             Application.Exit();
  67.         }
  68.     }
  69. }
复制代码
 

来源:https://www.cnblogs.com/jsper/archive/2023/03/11/17205434.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具