通常windows應用程序都有相似的特征:控件、菜單、工具條、狀態欄等等。每次我們開始作一個新的windows應用程序時都是以相同的事情開始:建立項目,添加控件和事件處理器。如果我們有一個模板,那麼我們就可以節約大量的時間了。
在介紹如何建立模板的過程中,將涉及大量的微軟.net framework類庫的基本知識。如果你沒有使用集成開發環境那麼本文介紹的模板對你將非常有用,如果你使用了visual studio.net這樣的集成開發環境你也可以從中了解控件的工作方式,這對你也是很有用的。
寫一個windows應用程序總是從下面的幾個步驟開始:
1、創建一個窗體
2、給窗體添加控件
3、添加菜單和菜單項,並綁定到窗體上
4、創建工具條
5、添加狀態欄
6、添加事件處理器
在windows應用程序開發中,你不可能完全跳過這些步驟,你可以對他作些修改,但不可能完全跳過。下面是完全的模板圖:
--------------圖1 -----------
創建窗體
在.Net FrameWork程序設計中,窗體總是System.Windows.Forms.Form類的子類,他繼承聊著各類的全部特征,你甚至不用添加任何一行代碼就可以創建window窗體了。現在我們創建一個form類的子類myapp,需要注意的是在說明繼承時使用冒號:。
using System.Windows.Forms; public class MyWinApp: Form { }
與其他程序相似,我們需要一個main()的主方法作為應用程序的入口。在main()中使用System.Windows.Forms的run方法來開始應用程序和顯示窗體。run方法有三種重載方式,對於windows應用程序,我們采取重載一個窗體對象的方式:
public static void Main() { MyWinApp form = new MyWinApp(); Application.Run(form); } 作為選擇,可以在main()方法中將兩行代碼寫成一行: public static void Main() { Application.Run(new MyWinApp()); }
設置屬性
一旦有了窗體,就可以設置它的屬性(象高度、寬度、標題等)並指定一個象圖1那樣的圖標,可以通過代碼或從構造器重調用一個方法來完成這個設置。在list1中有一個方法InitializeComponent,可以將初始化代碼寫入其中。
使用width和height屬性設置寬度和高度
this.Width = 400; this.Height = 300;
使用窗體的text屬性設置標題
this.Text = "My Windows Application";
設置圖標
如果未作說明,windows應用程序將顯示一個缺省圖標,可以修改這個圖標,方法是設置窗體的icon屬性,這個屬性接受一個System.Drawing.Icon對象。Icon類有幾個可以用於初始化Icon對象的構造函數,需要說明的是最好提供.ico文件的完全路徑。
this.Icon = new Icon(imageFolder + "applicationLogo.ico");
這裡 imageFolder是一個靜態域,用於指示icon文件的目錄,imageFolder的定義如下:
static String imageFolder = "Images" + Path.DirectorySeparatorChar.ToString();
這告訴應用程序icon文件在應用程序的image目錄下,這裡使用了System.IO.Path 類的DirectorySeparatorChar屬性獲得操作系統用於分隔目錄和父目錄的分隔符,在這裡沒有使用"/",這是因為對於windows操作系統這是正確的,但對於linux和unix則不然。這也是為了證明模板對於其他操作系統也是方便的。
窗體的位置
使窗體居中時非常有用的,要達到這個目的,需要使用StartPosition屬性,並將FormStartPosition 的一個成員賦給他。
this.StartPosition = FormStartPosition.CenterScreen;
當然也可以用form類的CenterToScreen方法是窗體居中,但這個方法不能直接使用。
this.CenterToScreen();
form類還有其他一些讓人感興趣的屬性和方法,這裡列出了其中的部分:
1、設置Opacity 屬性創建一個透明或半透明的窗體
2、設置modal屬性使窗體為模式的或非模式的
3、通過BackColor屬性改變窗體的背景顏色
4、將TopMost屬性設置為true,以確定窗體在其他所有非最頂部窗體之上
給窗體添加控件
windows控件均繼承自System.Windows.Forms.Control類,control類處理用戶輸入、安全等,他給窗體的控件提供了一個windows句柄,以及一些重要的屬性,如Name, Enabled, Text, BackColor, Left, Top, Size, Location, Visible, Width, 和 Height。