1、如果不想让程序在任务栏中显示,请把窗体的属性ShowInTaskbar设置为false;

2、如果想让程序启动时就最小化,请设置窗体的属性WindowState设置为Minimized。(Minimized
最小化,Normal正常启动,Maximized最大化)

3、拉一个NotifyIcon控件notifyIcon,为控件notifyIcon的属性Icon添加一个icon图标。

4、可以为NotifyIcon加一个ContextMenuStrip右键菜单menu_Notify。

5、本例子禁用了窗体最大化按钮。(设置窗体的属性MaximizeBox的属性为false)

6、主要代码:
#region
私有方法 处理窗体的 显示 隐藏 关闭(退出)
        private void ExitMainForm()
       
{
            if (MessageBox.Show("您确定要退出化验数据接收程序吗?", "确认退出",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2) == DialogResult.OK)
           
{
                this.notifyIcon.Visible = false;
               
this.Close();
                this.Dispose();
               
Application.Exit();
            }
        }

private void
HideMainForm()
        {
            this.Hide();
       
}

private void ShowMainForm()
        {
           
this.Show();
            this.WindowState =
FormWindowState.Normal;
            this.Activate();
        }
       
#endregion#region 右键菜单处理,显示 隐藏 退出
        private void
menuItem_Show_Click(object sender, EventArgs e)
        {
           
ShowMainForm();
        }

private void
menuItem_Hide_Click(object sender, EventArgs e)
        {
           
HideMainForm();
        }

private void
menuItem_Exit_Click(object sender, EventArgs e)
        {
           
ExitMainForm();
        }
        #endregion#region
双击托盘上图标时,显示窗体
        private void notifyIcon_DoubleClick(object sender,
EventArgs e)
        {
            if (this.WindowState ==
FormWindowState.Normal)
            {
                this.WindowState =
FormWindowState.Minimized;
   
               
HideMainForm();
            }
            else if(this.WindowState ==
FormWindowState.Minimized)
            {
               
ShowMainForm();
            }
        }
       
#endregion

#region 点最小化按钮时,最小化到托盘
        private void
frmMain_SizeChanged(object sender, EventArgs e)
        {
            if
(this.WindowState == FormWindowState.Minimized)
           
{
                HideMainForm();
            }
        }
       
#endregion

#region 窗体关闭时最小化到托盘
        private void
frmMain_FormClosing(object sender, FormClosingEventArgs e)
       
{
            e.Cancel = true;

HideMainForm();
       
}
        #endregion

C# 实现WinForm窗口最小化到系统托盘代码的更多相关文章

  1. C# 实现WinForm窗口最小化到系统托盘代码,并且判断左右鼠标的事件

    1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小 ...

  2. C# WinForm窗口最小化到系统托盘

    * C# WinForm窗口最小化到系统托盘http://hi.baidu.com/kfxtgtqyapouyze/item/8ccfdcd5a174a7312a35c7c3 主要功能:(1).程序启 ...

  3. C#实现窗口最小化到系统托盘

    先添加notifyicon控件notifyIcon1 using System; using System.Collections.Generic; using System.ComponentMod ...

  4. WPF应用最小化至系统托盘运行

    原文:WPF应用最小化至系统托盘运行 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/details/5178889 ...

  5. 将 VMware 最小化到系统托盘

    1, 下载 Trayconizer官网地址: http://www.whitsoftdev.com/trayconizer/下载地址: http://www.whitsoftdev.com/files ...

  6. Delphi 7下最小化到系统托盘

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...

  7. 将Mozilla ThunderBird最小化到系统托盘(转载)

    转自:http://be-evil.org/mozilla-thunderbird-minize-to-tray.html Mozilla ThunderBird是一款非常不错的邮件客户端,但是其在默 ...

  8. Delphi 7下最小化到系统托盘(主要是WM_TRAYMSG和WM_SYSCOMMAND消息)

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...

  9. electron监听系统托盘,electron是否最小化到系统托盘

    在项目中需要判断窗口是否最小化在系统托盘上,任务栏那已经关闭,查了一晚上的api,始终找不到可以调用的方法,最后绞尽脑汁想到了一个办法,那就是在点右上角的关闭按钮时,加个全局变量,用来标识已经最小到系 ...

随机推荐

  1. python字符串拼接相关

    #字符串拼接#str.join(元组.列表.字典.字符串) 之后生成的只能是字符串.str = "-";seq = ("a", "b", & ...

  2. Guava Joiner 拼接字符串

    Joiner Guava 是Google 对Java的内置类型进行增强和扩展的工具. Joiner.on(", ").join(Iterator<> iter) Joi ...

  3. HTML页面布局

    接下来的下面代码,只是给了一个大的前端编写布局,如果你已经是牛人了,就当没看到,如果是一些初学者,不妨拿去用用,里面也写了一些常用的css样式,现在虽然有很多牛逼的前段框架,用起来也非常得心应手,但是 ...

  4. Servlet学习笔记【2】---Http数据包

    本文主要讲Http协议相关知识. 1 Http协议特点 单向性:客户端和服务端是单向通信的,只有客户端发请求,服务端才会响应产生.(异于推送模式) 无状态:协议本身并没有状态的记录,当客户端多次访问服 ...

  5. 洛谷 P4768 [NOI2018]归程

    洛谷 361行代码的由来 数据分治大发好啊- NOI的签到题,可怜我在家打了一下午才搞了80分. 正解应该是kruskal重构树或排序+可持久化并查集. 我就分点来讲暴力80分做法吧(毕竟正解我也没太 ...

  6. ubuntu下MySQL无法启动Couldn't find MySQL server (/usr/bin/mysqld_safe)”

    一台虚拟测试机,启动的时候,报上述错误,从这个报错来看,多半是因为读取到了另外的my.cnf导致的 那么,my.cnf放置在什么地方? 可以通过如下指令获取到 root@mysql:~# mysqld ...

  7. attention机制七搞八搞

    注意力机制即Attention mechanism在序列学习任务上具有巨大的提升作用,在编解码器框架内,通过在编码段加入A模型,对源数据序列进行数据加权变换,或者在解码端引入A模型,对目标数据进行加权 ...

  8. (转) FLASH吸血鬼的工作原理

    FLASH吸血鬼是众多网友用来从exe可执行文件中提取swf的利器,其直接读取内存,从内存中取出swf文件.经过分析,发现其原理还是比较简单的.第一步.通过GetWindowThreadProcess ...

  9. node+npm安裝配置

    控制臺輸入node 根據提示安裝   sudo apt-get install -g npm配置淘寶源 npm config set registry https://registry.npm.tao ...

  10. 基于 GitHub 搭建/创建自己博客 DIY

    此博客主要实现通过github创建个人定制的博客的功能,主要参考如下两篇文章,再次感谢. 创建GitHub技术博客全攻略 “授人以渔”的教你搭建个人独立博客 [说明]:使用本文的正确方式是参考上述两篇 ...