如何将窗体最小化到托盘

解决方案 »

  1.   

    使用NotifyIcon
    参考http://chenxing.blog.51cto.com/240526/76288
     WinForm程序设计-系统托盘NotifyIcon控件 --------------------------------------------------------------------------------2008-05-10 10:04:49 标签:WinForm 程序设计 系统托盘 NotifyIcon控件   [推送到技术圈] 
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenxing.blog.51cto.com/240526/76288 
    NotifyIcon控件
    (1)新创建一个项目,修改Form1的Text属性为testNotifyIcon;
    (2)向Form1窗口中添加一个NotifyIcon控件,修改其Name属性为 MyNotifyIcon。修改其Text属性为
       testNotifyIcon,与应用程序的标题相同。这是因为NotifyIcon显示在系统托盘中时,Text属性中保存的
       文本为鼠标移动到程序图标上时的提示信息。修改Icon属性,为NotifyIcon添加一个图标;
    (3)在Form1的属性窗口上,把Icon属性也选择为与NotifyIcon相同的图标。修改ShowInTaskBar属性值为
        False,这样,应用程序在运行时就不会出现在任务栏中;
    (4)添加双击NotifyIcon时的事件处理代码(DoubleClick)
       private void MynotifyIcon_DoubleClick(object sender, System.EventArgs e)
       { 
         if(this.Visible) 
          { 
            this.Hide(); 
          }else
               {
                 this.Show();
               }
          }
    (5)在使用NotifyIcon控件时,经常需要用到快捷菜单(ContextMenu控件),在NotifyIcon的ContextMenu属性中
       选择一个快捷菜单。这样在图标上可以通过快捷菜单执行程序的各种功能。   
    例如:给快捷菜单添加两个功能,一个为显示表单,一个为隐藏表单
    在功能的单击事件中代码如下:
    private void menuItem1_Click(object sender, System.EventArgs e)
      {
         this.Show();//显示表单
      }
      private void menuItem2_Click(object sender, System.EventArgs e)
      {
          this.Hide();//隐藏表单
      }
     
      

  2.   

    可以在SizeChanged事件中,判断是否执行最小化操作 private void From1_SizeChanged(object sender, System.EventArgs e)
    {
        if(this.WindowState == FormWindowState.Minimized)//判断是否是最小化操作
        {
            this.Hide();
             this.notifyIconMain.Visible = true; //托盘图标可见
        }
    }