云南特产 健康论坛 创业论坛 一树百花 低空飞行  
             

水手

专注
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
c# winform最小化到托盘,也就是最小化到右下角,其实很简单,winform中有专门的控件。
2010年04月12日 星期一 15:23

c# winform最小化到托盘,也就是最小化到右下角,其实很简单,winform中有专门的控件。

下面是完整的代码,没太多需要解释的。

先在winform中添加notifyIcon控件,然后激活相应事件,添加代码。因为屏蔽了关闭窗体事件,可以设定一个全局变量bool变量来分辨是哪里引起的close事件。

      //设置全局变量bool closeTag = true;

        //最小化
        private void form1_Resize(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                NormalToMinimized();
            }           
        }
        //close时最小化
        private void form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            NormalToMinimized();
        }
        //单击显示窗体
        private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                this.MinimizedToNormal();
            }
        }
        private void MinimizedToNormal()
        {
           this.Visible = true;
           this.WindowState = FormWindowState.Normal;
           notifyIcon.Visible = false;

        }
        private void NormalToMinimized()
        {
            this.WindowState = FormWindowState.Minimized;
            this.Visible = false;
            this.notifyIcon.Visible = true;
        }
        private void frmMain_FormClosing(object sender, FormClosingEventHandler e)
        {
            if (closeTag)
            {
                e.Cancel = true;
                NormalToMinimized();
            }
        }
//托盘右键关闭事件
        private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
        {
            closeTag = false;
            Application.Exit();
        }

             
  云南特产 健康论坛 创业论坛 一树百花 低空飞行