专栏首页Kitty的日常笔记C# 实现最小化托盘功能

C# 实现最小化托盘功能

winform程序实现最小化托盘显示

1.创建新的解决方案,解决方案名称和路径自定义

2.在解决方案下面新建一个窗体,从左边工具箱,将NotifyIcon拖过去窗体,该控件的作用是:运行程序期间在Windows任务栏右侧的通知区域显示图标(也就是我们所说的托盘显示),如下图

3.我们可以设置该控件的相关属性值,直接上代码了

        //调整窗体大小的时候触发的事件
        private void Form1_Resize(object sender, EventArgs e)
        {
            if (this.WindowState==FormWindowState.Minimized)//当窗体设置值为最小化时
            {
                notifyIcon1.Visible = true;//该控件可见
                this.ShowInTaskbar = false;//在任务栏中显示该窗口
            }
            else
            {
                notifyIcon1.Visible = false;//否则该控件不可见
            }
        }
        //双击该控件时触发的事件
        private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Visible = true;//
            this.WindowState = FormWindowState.Normal;//窗口正常显示
            this.ShowInTaskbar = true;//在任务栏中显示该窗口
        }

还有一点,NotifyIcon控件我们默认设置为不可见

还可以设置自己喜欢的图标作为托盘显示的icon

接下来增加一个另外的:

在NotifyIcon控件中增加一个右键菜单

1.在左边的工具栏中拖入一个上下文菜单contextMenuStrip

2.菜单上添加两个子项,显示和退出

3.双击显示和退出进入,下面直接贴代码,代码就不解释了,都有注释。

       private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Visible = true;//可见
            this.WindowState = FormWindowState.Normal;//正常显示
            this.ShowInTaskbar = false;//在任务栏中显示该窗口
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();//退出程序
        }

4.接下来是最关键的一步,是将 contextMenuStrip 和 NotifyIcon联系起来的操作,如下图:

ok,到这里的话整个托盘显示的过程已经完成了,以上功能亲测过,如果上文有写错的地方或者有不理解的可以欢迎留言指正。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 无法启动iis express web服务器解决

    VS2013 、VS2015 、VS2017调试出现无法启动iis express web服务器

    用户7053485
  • C# 创建Windows服务demo

    1.新建一个Windows Service,并将项目名称改为“MyWinsService”,程序保存路径自己选一个,如下图所示:

    用户7053485
  • C# 关于位运算的学习笔记

    程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),简单来说位运算就是直接对在内存中的二进制数的每位进行运算操作。

    用户7053485
  • 给自定义控件(Web Control)添加事件的几种方法。前两种方法可以不实现IPostBackEventHandler

        写自定义控件已经好久了,也有几个用得时间比较长的,但是对于“事件”一直是比较模糊,没有很详细的理解。     最近升级分页控件,由于原来使用的是VB...

    用户1174620
  • 【React】417- React中componentWillReceiveProps的替代升级方案

    因为最近在做一个逻辑较为复杂的需求,在封装组件时经常遇到父组件props更新来触发子组件的state这种情景。在使用componentWillReceivePr...

    pingan8787
  • 2016倒闭的“互联网+”名单 | 人有多大胆,地有多大产

    而现在的很多创业者又何尝不是如此?大家哪里是在创业,都是玩空手套白狼,都是在讲故事,描述自己的未来,你描述的越好,估值越高。这不是浮夸风是什么?

    华章科技
  • 2.3 进程同步

    在多道程序共同执行的条件下,进程与进程是并发执行的,不同进程之间存在着不同的相互制约的关系。为了协调进程之间的相互制约的关系,引入了进程同步的概念。

    week
  • 用递归来实现字符串逆序输出

    题目:用递归来实现字符串逆序输出 源代码: #include #include void view_str(char *p, int start, int en...

    企鹅号小编
  • Linux进程关系

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux的进程相互之间有一定的关系。比如...

    Vamei
  • 不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS

    此前,如果想用ROS,至少你需要会用Linux和Qt框架,下载安装环境搭建……做各种准备工作。

    量子位

扫码关注云+社区

领取腾讯云代金券