Logo

Logo

WindowsForm托盘实现

Pastore Antonio
Pastore Antonio 2024年06月25日
427 阅读 0 评论 约 2271 字 阅读约 5 分钟

创建一个空白的窗体也可以
在这里插入图片描述

拖放NotifyIcon到窗体中,然后右击属性,在Text取个应用名称,再拖一个ContextMenuStrip到窗体中
在这里插入图片描述
在这里插入图片描述
创建一个“退出”菜单,双击下生成退出事件,然后在退出事件中编写代码退出应用程序

  //退出
        private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
        {
             this.Invoke(()=> {
                if (cancellToken != null)
                {
                    cancellToken.Cancel(true);
                    task1?.Dispose();
                }
                //停止接收消息
                RocketHelpter.StopConsumer();
            });

            //退出         
            Application.Exit();
        }

在notifyIcon1属性栏,选择关联右键菜单
在这里插入图片描述
Form1.cs代码参考:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsPrint
{
    public partial class Form1 : Form
    {
        public static Task task1 = null;
        public static CancellationTokenSource cancellToken = new CancellationTokenSource();

        /// <summary>
        /// 是否退出了?1=是,0=否
        /// </summary>
        public static int isExit = 0;

        public Form1()
        {
            InitializeComponent();

            this.WindowState = FormWindowState.Minimized;
            //隐藏任务栏区图标
            this.ShowInTaskbar = false;
            不显示
            this.Hide();
            //图标显示在托盘区
            notifyIcon1.Visible = true;
            //图标设置
            notifyIcon1.Icon = new Icon(AppDomain.CurrentDomain.BaseDirectory + "\\print_pref.ico");

            //启动接收
            task1 = Task.Run(() =>
            {
                // 接收RocketMQ打印消息
                RocketHelpter.ReviceMsg();
            }, cancellToken.Token);
        }

        //退出
        private void ExitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            isExit = 1;
            this.Invoke(()=> {
                if (cancellToken != null)
                {
                    cancellToken.Cancel(true);
                    task1?.Dispose();
                }
                //停止接收消息
                RocketHelpter.StopConsumer();
            });

            //退出         
            Application.Exit();
        }


    }
}

查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它

附件下载

共 4 个文件
在这里插入图片描述
PNG 78.8 KB
在这里插入图片描述
PNG 30.6 KB
在这里插入图片描述
PNG 5.4 KB
在这里插入图片描述
PNG 31.0 KB
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... WindowsForm托盘实现

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... WindowsForm托盘实现

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... WindowsForm托盘实现

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... WindowsForm托盘实现

2026-02-14 · Xzavier Aaron