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();
                }
            }

  • 相关阅读:
    linux 删除某种规则命名的文件
    adb shell 出现 error :
    android 开发,多个线程共用一个handler
    android 开发上传图片遇到返回 FileNotFoundException
    mysql 的存储过程调试软件
    输入adb shell 时 提示error: more than one device and emulator
    高德开发 android 出现 key 鉴权失败
    android 中设置HttpURLConnection 超时并判断是否超时
    LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
    C# 如何判断数据是否为 NaN
  • 原文地址:https://www.cnblogs.com/beeone/p/2068711.html
Copyright © 2011-2022 走看看