zoukankan      html  css  js  c++  java
  • WinFrom中实现最小化到系统托盘[转载]

    有个叫NotifyIcon的控件

    1、建个WinForm项目,其它操作略过。2、拉个NotifyIcon控件,将属性Visable设置成False,在Text属性上随便填些文件。3、实现Form的SizeChanged事件,代码如下:

    if(this.WindowState == FormWindowState.Minimized)  //判断是否最小化
    {
        
    this.ShowInTaskbar = false;  //不显示在系统任务栏
         notifyIcon.Visible = true;  //托盘图标可见
    }

    4、实现NotifyIcon控件的DoubleClick事件,代码如下:

    if(this.WindowState == FormWindowState.Minimized)
    {
        
    this.ShowInTaskbar = true;  //显示在系统任务栏
        this.WindowState = FormWindowState.Normal;  //还原窗体
         notifyIcon.Visible = false;  //托盘图标隐藏
    }


    例题:

    private ContextMenu notifyiconMnu;

    #region 最小化到任务栏
            /// <summary>
            /// 最小化到任务栏
            /// </summary>
            private void Initializenotifyicon()
            {
                //定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
                MenuItem[] mnuItms = new MenuItem[3];
                mnuItms[0] = new MenuItem();
                mnuItms[0].Text = "显示窗口";
                mnuItms[0].Click += new System.EventHandler(this.notifyIcon1_showfrom);

                mnuItms[1] = new MenuItem("-");

                mnuItms[2] = new MenuItem();
                mnuItms[2].Text = "退出系统";
                mnuItms[2].Click += new System.EventHandler(this.ExitSelect);
                mnuItms[2].DefaultItem = true;

                notifyiconMnu = new ContextMenu(mnuItms);
                notifyIcon1.ContextMenu = notifyiconMnu;
                //为托盘程序加入设定好的ContextMenu对象
            }


            private void notifyIcon1_DoubleClick(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Show();
                    this.ShowInTaskbar = true;
                    this.WindowState = FormWindowState.Normal;
                    notifyIcon1.Visible = false;
                }
            }

            public void notifyIcon1_showfrom(object sender, System.EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.Show();
                    this.ShowInTaskbar = true;
                    this.WindowState = FormWindowState.Normal;
                    notifyIcon1.Visible = false;
                }
            }

            public void ExitSelect(object sender, System.EventArgs e)
            {
                //隐藏托盘程序中的图标
                notifyIcon1.Visible = false;
                //关闭系统
                this.Close();
                this.Dispose(true);
            }

            #endregion
    private void Form_main_SizeChanged(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized) //判断是否最小化
                {
                    notifyIcon1.Visible = true;
                    this.Hide();
                    this.ShowInTaskbar = false;

                    Initializenotifyicon();
                }
            }

  • 相关阅读:
    .NET 4 上的REST 框架
    WCF Web API 说再见,继承者ASP.NET Web API
    基于盛大的云数据库系统 MongoIC 构建图片系统
    微软以Apache许可协议开源ASP.NET MVC
    Redis 起步
    HttpClient介绍
    Quartz.NET 2.0正式发布
    CodeFirst Migrations随Entity Framework 4.3一同发布
    Redis 在Centos Linux 上的启动脚本
    Quartz.NET的管理工具
  • 原文地址:https://www.cnblogs.com/beeone/p/2068711.html
Copyright © 2011-2022 走看看