用 C# 編寫一個停放在工作列上的表徵圖程式

來源:互聯網
上載者:User

用 C# 編寫一個停放在工作列上的表徵圖程式
作者: 蔡世友 類別: C#/VB 日期: 2002-1-30 10:21:46
01-12-6 上午 10:53:11
--------------------------------------------------------------------------------
引 言
C#語言是微軟公司針對.Net平台才推出來的一門新語言,作為.Net平台的第一語言,它幾乎集中了所有關於軟體開發和軟體工程研究的最新成果。其是當前第一個完全面向組件的語言。
微軟的.Net平台堪稱為新一代的互連網平台。對於技術開發人員來說,.Net平台的兩大特性是非常卓越的,首先是其所提供的通用語言執行平台,也就是公用語言運行平台,另一方面就是其龐大而全面的統一編程類。
下面我向大家介紹一個.Net平台上用C# 寫的可以停放在工作列上的表徵圖程式,類似於SQL管理器、防毒軟體表徵圖及OICQ表徵圖等。
一、表徵圖程式基本概念
我們這裡所指的表徵圖程式是類似於在Windows中經常接觸的停放在工作列上,在後台啟動並執行病毒監視,SQL服務管理員等程式。這些程式啟動後形成一個表徵圖停在工作列上,具有以下的外觀特徵:
雙擊表徵圖可開啟程式主視窗。
當滑鼠停在表徵圖上時顯示提示資訊。
在表徵圖上點擊滑鼠右鍵可以彈出一個捷徑功能表,通過點擊捷徑功能表上的功能表項目可以運行相應的程式功能。
二、程式使用類簡介
.Net提供了非常多的類,我們在開發過程中只需要使用其提供的各種類就能夠實現我們的大部份功能,.Net平台中的類有的是封裝的,有的是虛擬,大多數的都是一般的公用類。你可以直接構造這些公用類的執行個體,也可以通過繼承而使用類的全部功能。在本程式中,我們使用了很多.Net類,下面,我將分別對主要的類作簡單介紹!
System.Windows.Fomrs.NotifyIcon類
這是本程式中最主要的類,其從Component類繼承的一個封裝類,不可繼承,主要功能是產生一個可以停放在工作列最右邊的表徵圖程式。下面是其主要成員介紹:
建構函式(Constructor Function)
public NotifyIcon(); 不帶任何參數,直接構造一個NotifyIcon對象。
Public NotifyIcon(IContainer container); 帶一個Icontainer參數,代表NotifyIcon容器控制項。
屬性(Properties)
ContextMenu 對象的彈出式菜單。
Icon 對象的表徵圖
Text 對象的ToolTip文本,也即是當滑鼠停在對象上時顯示的文本。
Visible 表示對象是否是可見的。
事件(Events)
Clcik 當單擊對象表徵圖時引發。
DoubleClick 當雙擊對象表徵圖時引發。
System.Windows.Forms.Application類
Windows Forms應用程式啟動類,提供表態的方法管理運用程式,如啟動Windows Forms使用Application.Run(Form),而退出程式使用Application.Exit()等。
System.Windows.Forms.Form類
Windows Forms程式表單類,視窗程式的表單一般都是直接或間接了從該類產生,如產生一個簡單的表單使用new Forms()即可。在一般應用程式中,由於使用者表單上還要根據自己的需要添加更多的可視化元素及控制項,如按鈕、標籤、文字框等;因此,大多數我們在使用Form類時都是從該類派生出使用者自己的表單類。
System.Windows.Forms.Button類
按鈕控制項類,提供一個可視的按鈕元素,一般情況下通過Text屬性設定按鈕的顯示文本,再為按鈕添加Click事件響應函數即可使用。
System.Windows.Forms.Label類
文字標籤類,可以通過設定其Text屬性使其在表單上顯示一般的文字資訊。
System.Windows.Forms.MenuItem類
Windows Forms功能表項目類,可以產生一個簡單的功能表項目,功能表項目是所有菜單的基本構成元素,通過該類可以設定功能表項目的外觀顯示內容及事件回應程式法等。該類提供了多種產生功能表項目對象的建構函式,在實際應用中一般採用MenuItem(string Text)的方法產生一個顯示文本為Text的功能表項目。功能表項目類提供Click事件使得使用者點擊菜單時可以響應。
System.Windows.Forms.ContextMenu類
快顯功能表類,產生一個彈出式菜單對象。其包括了一個功能表項目集合屬性,使其可以非常方便的管理及存取快顯功能表的各項。產生快顯功能表對象使用其建構函式,有兩種方法:一種是直接使用ContextMenu(),不帶任何參數。另一種是使用ContextMenu(MenuItem[] menus),代有一個功能表項目數組作為參數。
三、程式設計及主要代碼
程式設計
本程式使用Visual Studio .Net編寫,首先通過建立Windows應用項目產生一個Windows Forms初始表單,在表單上添加一個文本為“隱藏表單”的按鈕,及一個說明示範程式的標籤,並雙擊按鈕,在其Click事件回應程式法中添加隱藏窗休的代碼。然後在工具列面板中找到NotifyIcon控制項,並把其拖到表單上,然後設定其Text屬性及Icon屬性(Icon屬性為圖片,可以通過控制項屬性欄選擇設定)。雙擊表單為表單的Load事件回應程式法添加NotifyIcon類的初始化代碼,完成後即可直接編譯運行。如所示:
程式主要代碼及注釋
下面將列出本程式中部份主要代碼及詳細注釋,以供大家加深對程式的理解。
public class Form1 : System.Windows.Forms.Form
{
//定義一個NotifyIcon對象
private System.Windows.Forms.NotifyIcon notifyIcon1;
private void InitializeComponent()//Visual Studio .Net自動產生,表單初始化時執行
{
//建立NotifyIcon對象並設定其基本的屬性如Icon,Text及Visible等
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
this.notifyIcon1.Text = "這是我的測試程式,還Cool吧!";
this.notifyIcon1.Visible = true;
}
static void Main()
{
Application.Run(new Form1());//啟動運行程式
}
private void Form1_Load(object sender, System.EventArgs e)
{
//產生4個功能表項目對象,顯示文本分別為"顯示視窗"、"隱藏視窗"、"執行程式"、"退出程式"
MenuItem menuItem1=new MenuItem("顯示視窗");
MenuItem menuItem2=new MenuItem("隱藏視窗");
MenuItem menuItem3=new MenuItem("執行程式");
MenuItem menuItem4=new MenuItem("退出程式");
//分別為4個功能表項目添加Click事件響應函數
menuItem1.Click+=new System.EventHandler(this.menuItem1_Click);
menuItem2.Click+=new System.EventHandler(this.menuItem2_Click);
menuItem3.Click+=new System.EventHandler(this.menuItem3_Click);
menuItem4.Click+=new System.EventHandler(this.menuItem4_Click);
//設定NotifyIcon對象的ContextMenu屬性為生面的快顯功能表對象
notifyIcon1.ContextMenu=new ContextMenu(new MenuItem[]{menuItem1,menuItem2,menuItem3,menuItem4});
//當使用者雙擊程式表徵圖時將執行相應的函數
notifyIcon1.DoubleClick+=new System.EventHandler(this.notifyIcon_DBClick);
}
private void menuItem1_Click(object sender,System.EventArgs e)//“顯示視窗”菜單的回應程式法
{
if(this.Visible==false)this.Visible=true;//假如當前視窗沒顯示則顯示當前視窗
}
private void menuItem2_Click(object sender,System.EventArgs e)//"隱藏視窗"菜單的回應程式法
{
if(this.Visible==true)this.Visible=false;//假如當前視窗為顯示的則隱藏視窗
}
private void menuItem3_Click(object sender,System.EventArgs e)//"執行程式"菜單的回應程式法
{
//顯示一個提示資訊框,表示事件已經得到響應
MessageBox.Show("示範程式已經執行,此處功能就是顯示一個提示框!","提示資訊",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
private void menuItem4_Click(object sender,System.EventArgs e)//“退出程式”菜單的回應程式法
{
this.Close();//關閉當前對象(即表單)
Application.Exit();//通過Application類的靜態方法Exit()退出應用程式
}
private void button1_Click(object sender, System.EventArgs e)//使用者單擊按鈕時的回應程式法
{
this.Visible=false;//隱藏當前主視窗
}
private void notifyIcon_DBClick(object sender, System.EventArgs e)//使用者雙擊應用程式圖示進的回應程式法
{
this.Visible=true;//顯示當前主視窗
}
}
四、程式運行
運行程式,將顯示一個主視窗,此時還可以看到在工作列上面多了一個表徵圖。當滑鼠移到其上停留一下時,將顯示一個簡單的提示資訊,點擊視窗上的“隱藏視窗”按鈕將隱藏主視窗,如所示:
在表徵圖上點擊滑鼠右鍵將顯示一個快顯功能表,此時可以選擇相應的菜單執行相應的功能如“顯示視窗”、“隱藏視窗”、“退出程式等”,如所示:
例如,在彈出的菜單中點擊“執行程式”將資訊一個資訊氣球,如所示:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.