当前位置: 首页 > news >正文

C# 最小化到托盘,托盘右击菜单显示

添加notifyIcon控件,并添加Icon,否则托盘没有图标(托盘右键菜单也可直接在属性里添加);

主要的代码:

public partial class Form1 : Form
    {
        #region
        //创建NotifyIcon对象 
        NotifyIcon notifyicon = new NotifyIcon();
        //创建托盘图标对象 
        Icon ico = new Icon("u9.ico");
        //创建托盘菜单对象 
        ContextMenu notifyContextMenu = new ContextMenu();
        #endregion
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //设置鼠标放在托盘图标上面的文字 
            this.notifyIcon1.Text = "码农网测试";
        }

        /// <summary>
        /// 最小化到托盘
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_SizeChanged(object sender, EventArgs e)
        {
            //判断是否选择的是最小化按钮 
            if (WindowState == FormWindowState.Minimized)
            {
                //托盘显示图标等于托盘图标对象 
                //注意notifyIcon1是控件的名字而不是对象的名字 
                notifyIcon1.Icon = ico;
                //隐藏任务栏区图标 
                this.ShowInTaskbar = false;
                //图标显示在托盘区 
                notifyicon.Visible = true;
            }
        }


        /// <summary>
        /// 托盘单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            switch (e.Button)
            { 
                case System.Windows.Forms.MouseButtons.Left:    //左击
                    //判断是否已经最小化于托盘 
                    if (WindowState == FormWindowState.Minimized)
                    {
                        //还原窗体显示 
                        WindowState = FormWindowState.Normal;
                        //激活窗体并给予它焦点 
                        this.Activate();
                        //任务栏区显示图标 
                        this.ShowInTaskbar = true;
                        //托盘区图标隐藏 
                        notifyicon.Visible = false;
                    }
                    break;
                case System.Windows.Forms.MouseButtons.Right:
                    //MessageBox.Show("右键");
                    break;
            }
        }
    }

 

转载于:https://www.cnblogs.com/testsec/p/6095874.html

相关文章:

  • Changing Your Commit Messages
  • mybatis对java自定义注解的使用——入门篇
  • 垃圾收集器之:CMS收集器
  • JAVA8之lambda表达式详解,及stream中的lambda使用
  • android中aar文件
  • Linux Increase The Maximum Number Of Open Files / File Descriptors (FD)
  • iOS10 UI教程层次结构的事件
  • WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)所有webapi似乎都缺失的一个功能...
  • 请设计一个一百亿的计算器
  • 润乾报表查看系统字体的方法
  • git初级--配置
  • C++11:POD数据类型
  • ListMultimap 容器
  • 【转载】MacOS软件包管理工具-HomeBrew
  • centos系统启动故障之MBR扇区故障
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android开源项目规范总结
  • Angularjs之国际化
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • javascript 总结(常用工具类的封装)
  • ng6--错误信息小结(持续更新)
  • Redash本地开发环境搭建
  • sublime配置文件
  • Tornado学习笔记(1)
  • vue自定义指令实现v-tap插件
  • windows下使用nginx调试简介
  • 基于 Babel 的 npm 包最小化设置
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端学习笔记之观察者模式
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 赢得Docker挑战最佳实践
  • 原生Ajax
  • HanLP分词命名实体提取详解
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #if和#ifdef区别
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (二)JAVA使用POI操作excel
  • (九)One-Wire总线-DS18B20
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)nsfocus-绿盟科技笔试题目
  • (转)大型网站架构演变和知识体系
  • (转)可以带来幸福的一本书
  • (转)平衡树
  • .net mvc部分视图
  • .NET序列化 serializable,反序列化
  • @Responsebody与@RequestBody
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [AIGC] 如何建立和优化你的工作流?
  • [Asp.net mvc]国际化
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体
  • [hive] posexplode函数