C#的form最小化的时候会向左边收缩,现在给程序加一个系统托盘图标,如何实现在最小化的时候,让form收缩到系统托盘图标而不是向左边收缩??或者说form是怎么处理最小化事件的??

解决方案 »

  1.   

    qq就是这样的啊,正常情况下form收缩时能够看到向左边收缩,我希望form能收缩到系统托盘
      

  2.   

    重写最小化事件,把窗体隐藏。VS.net2003有个组件叫notifyIcon是实现系统图标的,具体操作你自己查查吧
      

  3.   

    不太明白你说的“向左边收缩”是什么意思,
    不过要实现托盘而不是最小化到系统任务栏的话,下面的代码可以搞定:
    在form中添加一个NotifyIcon控件
    this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
    notifyIcon1.Icon = new Icon("app.ico");//指定一个图标
    notifyIcon1.Visible = false;
    notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click);
    this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);private void Form1_SizeChanged(object sender, EventArgs e)
    {
       if (this.WindowState==FormWindowState.Minimized)//最小化
       {
             his.ShowInTaskbar = false;
             this.notifyIcon1.Visible=true;
       }
    }private void notifyIcon1_Click(object Sender, EventArgs e)
    //单击系统栏图标激活窗体
    {
         if (this.WindowState == FormWindowState.Minimized)
             this.WindowState = FormWindowState.Normal;
         this.Activate();
         this.notifyIcon1.Visible = false;
         this.ShowInTaskbar = true;
    }
      

  4.   

    重写ReSize事件,最小化的时候就隐藏窗口,显示NotifyIcon,当然,你还可以设置NotifyIcon的单击事件,以便隐藏NotifyIcon,显示窗口。