C# 程序啓動最小化至任務欄及閃爍

主要功能:安全

   C#讓窗體最小化至任務欄,同時在系統托盤區的圖標點擊左鍵能顯示窗體,並使窗體閃爍。ide

首先:this

 建立窗體應用程序,並添加控件NotifyIcon及ContextMenuStrip控件spa

  NotifyIcon:點擊notifyIcon1屬性,爲控件屬性Icon添加圖標code

  contextMenuStrip1屬性,進入Items添加或右鍵"編輯項".添加4個toolStripMenuItem,設置其Text爲"顯示窗體"、"隱藏窗體"、"開始閃爍"、"退出"orm

 

代碼:blog

點擊窗體"關閉"按鈕時,取消關閉操做且窗體隱藏,任務欄圖標仍然顯示:事件

 

 //窗體關閉前發生事件  
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = true;           //取消關閉操做 表現爲不關閉窗體  
                this.Hide();               //隱藏窗體  
            }
        }

1.左鍵點擊圖標時,顯示窗體.
2.當鼠標右鍵點擊圖標時,顯示"顯示窗體"\"隱藏窗體"\"閃爍"\"退出"菜單欄,並有相對應的功能
ip

 //"顯示窗體"單擊事件
        private void 顯示ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Show();                                //窗體顯示  
            this.WindowState = FormWindowState.Normal;  //窗體狀態默認大小  
            this.Activate();
        }
        //"隱藏窗體"單擊事件 
        private void 隱藏ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();                      //隱藏窗體 
        }
        //"退出"單擊事件 
        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //點擊"是(YES)"退出程序  
            if (MessageBox.Show("肯定要退出程序?", "安全提示",
        System.Windows.Forms.MessageBoxButtons.YesNo,
        System.Windows.Forms.MessageBoxIcon.Warning)
        == System.Windows.Forms.DialogResult.Yes)
            {
                notifyIcon1.Visible = false;   //設置圖標不可見  
                this.Close();                  //關閉窗體  
                this.Dispose();                //釋放資源  
                Application.Exit();            //關閉應用程序窗體  
            }
        }

鼠標左鍵圖標顯示窗體功能資源

 

//鼠標左鍵圖標事件
        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            //點擊鼠標"左鍵"發生  
            if (e.Button == MouseButtons.Left)
            {
                this.Visible = true;                        //窗體可見  
                this.WindowState = FormWindowState.Normal;  //窗體默認大小  
                this.notifyIcon1.Visible = true;            //設置圖標可見  
            }
        }

 圖標閃爍

閃爍的效果是加上一個空白的圖標,正常圖標與空白圖標的切換進而實現閃爍的效果。

property是vs的一個資源管理功能,能夠存儲系統圖標及一些常量

 

 

private Icon timg = Properties.Resources.timg;
        private Icon blank = Properties.Resources.blank;//透明的圖標 
        private bool _status = true;
        private bool _isBlink = false;

右鍵菜單控制圖標是否是顯示

private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (_isBlink == false)
            {
                _isBlink = true;
                timer1.Enabled = true;
                timer1.Start();
            }
            else
            {
                _isBlink = false;
                timer1.Stop();
                //氣泡提示
                notifyIcon1.ShowBalloonTip(5000, "提示", "關閉閃爍效果!", ToolTipIcon.Info);
            }
        }

 

 定時器中修改圖標的狀態,定時反轉圖標

 

private void timer1_Tick(object sender, EventArgs e)
        {
            
            if (_status)
                notifyIcon1.Icon = timg;
            else
                notifyIcon1.Icon = blank;

            _status = !_status;
        }

 

完整代碼:

public partial class Form1 : Form
    {
        private Icon timg = Properties.Resources.timg;
        private Icon blank = Properties.Resources.blank;//透明的圖標 
        private bool _status = true;
        private bool _isBlink = false;
        public Form1()
        {
            InitializeComponent();
        }
        


        //窗體關閉前發生事件  
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = true;           //取消關閉操做 表現爲不關閉窗體  
                this.Hide();               //隱藏窗體  
            }
        }
        //"顯示窗體"單擊事件
        private void 顯示ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Show();                                //窗體顯示  
            this.WindowState = FormWindowState.Normal;  //窗體狀態默認大小  
            this.Activate();
        }
        //"隱藏窗體"單擊事件 
        private void 隱藏ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();                      //隱藏窗體 
        }
        //"退出"單擊事件 
        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //點擊"是(YES)"退出程序  
            if (MessageBox.Show("肯定要退出程序?", "安全提示",
        System.Windows.Forms.MessageBoxButtons.YesNo,
        System.Windows.Forms.MessageBoxIcon.Warning)
        == System.Windows.Forms.DialogResult.Yes)
            {
                notifyIcon1.Visible = false;   //設置圖標不可見  
                this.Close();                  //關閉窗體  
                this.Dispose();                //釋放資源  
                Application.Exit();            //關閉應用程序窗體  
            }
        }
        //鼠標左鍵圖標事件
        private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            //點擊鼠標"左鍵"發生  
            if (e.Button == MouseButtons.Left)
            {
                this.Visible = true;                        //窗體可見  
                this.WindowState = FormWindowState.Normal;  //窗體默認大小  
                this.notifyIcon1.Visible = true;            //設置圖標可見  
            }
        }

        
        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (_isBlink == false)
            {
                _isBlink = true;
                timer1.Enabled = true;
                timer1.Start();
            }
            else
            {
                _isBlink = false;
                timer1.Stop();
                //氣泡提示
                notifyIcon1.ShowBalloonTip(5000, "提示", "關閉閃爍效果!", ToolTipIcon.Info);
            }
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            
            if (_status)
                notifyIcon1.Icon = timg;
            else
                notifyIcon1.Icon = blank;

            _status = !_status;
        }

    }
相關文章
相關標籤/搜索