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

  • 相关阅读:
    多边形切割
    数据库冷备份步骤
    获取对象的矩形范围
    圆柱体切割
    mapgis文件格式
    注册asp_net 4_0 到iis的方法
    文件获取裁剪多边形
    heap做题记录
    手动编译Aseprite源码(1.2.13)
    为什么要使用委托?
  • 原文地址:https://www.cnblogs.com/beeone/p/2068711.html
Copyright © 2020-2023  润新知