C# winForm啟動最小化到工作列右側通知欄並互動操作

來源:互聯網
上載者:User

標籤:

C# winForm啟動最小化到工作列右側通知欄並互動操作

一。主要功能:
(1)、程式啟動自動隱藏到工作列右側通知欄顯示。(與系統托盤同義)
(2)、雙擊系統托盤表徵圖顯示、隱藏視窗;
(3)、右擊系統托盤表徵圖提供三個菜單選項,“退出”、“隱藏”、“顯示”;

二。相關控制項:
1、建一個WinForm程式—IconForm,將Form屬性ShowInTaskbar改為false,這樣程式將不會在工作列中顯示。
2、將Form屬性WindowState選擇為 Minimized,以便起來自動最小化隱藏
3、在工具列中的“公用控制項”裡,拖入NotifyIcon控制項—notifyIcon1,這個是程式運行工作列右側通知區域表徵圖顯示控制項,為控制項notifyIcon的屬性Icon添加一個icon表徵圖,或從代碼中加入。
4、在工具列中的“菜單和工具列”裡,拖入ContextMenuStrip—contextMenuStrip1,這個控制項是右擊時關聯菜單。
5、右鍵notifyIcon1選擇屬性,將其屬性ContextMenuStrip改加為contextMenuStrip1,這個時候notifyIcon1和contextMenuStrip1兩個控制項就關聯了。
6、右鍵contextMenuStrip1,選擇屬性,進入Items,然後點擊“添加”,這裡添加三個菜單選項:exitMenuItem、hideMenuItem、showMenuItem,同時分別將其Text屬性改為:退出、隱藏和顯示。


三。主要代碼:
1、雙擊IconForm,即添加Load事件然後

//一 右擊表單,選擇屬性,轉到事件頁面,雙擊 Load,SizeChanged事件,給表單添加代碼

private void Form1_Load(object sender, EventArgs e)        {         //1.將Form屬性ShowInTaskbar改為false,這樣程式將不會在工作列中顯示。         //2.將Form屬性WindowState選擇為 Minimized,以便起來自動最小化隱藏。            string startup = Application.ExecutablePath;       //取得程式路徑               int pp = startup.LastIndexOf("\\");            startup = startup.Substring(0, pp);            string icon = startup + "\\testIcon.ico";         //3.一定為notifyIcon1其設定表徵圖,否則無法顯示在通知欄。或者在其屬性中設定            notifyIcon1.Icon = new Icon(icon);        }        private void Form1_SizeChanged(object sender, EventArgs e)        {            if (this.WindowState == FormWindowState.Minimized)            {                this.Hide(); //或者是this.Visible = false;                this.notifyIcon1.Visible = true;            }        }

//二 雙擊表單上的功能表項目,添加相關代碼

private void exitMenuItem_Click(object sender, EventArgs e)        {            if (MessageBox.Show("你確定要退出程式嗎?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)            {                notifyIcon1.Visible = false;                this.Close();                this.Dispose();                Application.Exit();            }        }        private void hideMenuItem_Click(object sender, EventArgs e)        {            this.Hide();        }        private void showMenuItem_Click(object sender, EventArgs e)        {            this.Show();            this.WindowState = FormWindowState.Normal;            this.Activate();        }

//三 轉到表單設計模式,右擊notifyIcon1 ,選擇屬性,雙擊其中DoubleClick,添加相關代碼

private void notifyIcon1_DoubleClick(object sender, EventArgs e)        {            if (this.WindowState == FormWindowState.Normal)            {                this.WindowState = FormWindowState.Minimized;                this.Hide();            }            else if (this.WindowState == FormWindowState.Minimized)            {                this.Show();                this.WindowState = FormWindowState.Normal;                this.Activate();            }        }

四。完整的代碼如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace IconForm{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }//說明,程式運行後自動隱藏到工作列右側的通知欄裡, //1        右擊選擇退出,隱藏,顯示//2        雙擊可以隱藏和顯示切換 //一 右擊表單,選擇屬性,轉到事件頁面,雙擊 Load,SizeChanged事件,給表單添加代碼        private void Form1_Load(object sender, EventArgs e)        {         //1.將Form屬性ShowInTaskbar改為false,這樣程式將不會在工作列中顯示。         //2.將Form屬性WindowState選擇為 Minimized,以便起來自動最小化隱藏。            string startup = Application.ExecutablePath;       //取得程式路徑               int pp = startup.LastIndexOf("\\");            startup = startup.Substring(0, pp);            string icon = startup + "\\testIcon.ico";         //3.一定為notifyIcon1其設定表徵圖,否則無法顯示在通知欄。或者在其屬性中設定            notifyIcon1.Icon = new Icon(icon);        }        private void Form1_SizeChanged(object sender, EventArgs e)        {            if (this.WindowState == FormWindowState.Minimized)            {                this.Hide(); //或者是this.Visible = false;                this.notifyIcon1.Visible = true;            }        }//二 雙擊表單上的功能表項目,添加相關代碼        private void exitMenuItem_Click(object sender, EventArgs e)        {            if (MessageBox.Show("你確定要退出程式嗎?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)            {                notifyIcon1.Visible = false;                this.Close();                this.Dispose();                Application.Exit();            }        }        private void hideMenuItem_Click(object sender, EventArgs e)        {            this.Hide();        }        private void showMenuItem_Click(object sender, EventArgs e)        {            this.Show();            this.WindowState = FormWindowState.Normal;            this.Activate();        }//三 轉到表單設計模式,右擊notifyIcon1 ,選擇屬性,雙擊其中DoubleClick,添加相關代碼        private void notifyIcon1_DoubleClick(object sender, EventArgs e)        {            if (this.WindowState == FormWindowState.Normal)            {                this.WindowState = FormWindowState.Minimized;                this.Hide();            }            else if (this.WindowState == FormWindowState.Minimized)            {                this.Show();                this.WindowState = FormWindowState.Normal;                this.Activate();            }        }    }}

  

C# winForm啟動最小化到工作列右側通知欄並互動操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.