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

  • 相关阅读:
    在.wxml文件中使用方法
    Element日期区间选择器限制选择范围
    规定段落中的文本不进行换行
    文件大小换算
    elementUI的message消息提示改成只能同时存在一个
    SQL 执行顺序
    SQL Left join
    wpf datagrid 行双击事件
    关于Infragistics.WebUI.UltraWebGrid的使用
    ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
  • 原文地址:https://www.cnblogs.com/beeone/p/2068711.html
Copyright © 2011-2022 走看看