• WinForm中实现最小化到系统托盘


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

  • 相关阅读:
    composer安装Workerman报错:Installation failed, reverting ./composer.json to its original content.
    从零开始搭建linux下laravel 5.5所需环境(三)
    ASPNET Razor 使用 @Ajax.BeginForm 需要注意到的细节
    .NET跨平台
    1172金币
    1044电子表
    1358统计号码牌
    1355疫情防控 数据调查
    1056反向输出一个三位数2
    1071行李托运
  • 原文地址:https://www.cnblogs.com/_zjl/p/2047918.html
Copyright © 2020-2023  润新知