Visual C#是微軟公司.Ner FrameWork框架中的一個重要組成部分,也是微軟公司極力推薦的新一代程序開發語言。WinForm是.Net開發平台中對Windows Form的一種稱謂。.Net 為開發WinForm的應用程序提供了豐富的Class Library(類庫)。這些WinFrom 類庫支持RAD(快速應用程序開發),這些類庫被封裝在一個名稱空間之中,這個名稱空間就是System.Windows.Forms。在此名稱空間中定義了許多類,在開發基於.Net的GUI應用程序的時候,就是通過繼承和擴展這些類才使得我們的程序有著多樣的用戶界面。本文就試圖通過一個最基本的類--Form,來具體說明一下用Visual C#開發WinForm程序的具體過程。
一.程序開發和運行環境及概括介紹
本問的所有調試程序都基於微軟視窗2000專業版本和.Net FrameWork Beta 2版。
二.第一個WinForm
如果你的機器已經達到了我們程序要求的運行環境,那就打開一個文本編輯器把下面的
程序代碼拷貝到編輯器裡面,然後另存為first.cs文件。通過下面的編譯語句:
csc /t:winexe /r:system.dll first.cs
編譯完成後。運行程序就可以看到以下界面:
程序源代碼:first.cs
using System ;
//導入 WinForms 名稱空間
using System.Windows.Forms ;
//Class Form1 繼承並擴展 System.Windows.Forms名稱空間中class Form
public class Form1 : Form
{
public static void Main()
{
//運行程序
Application.Run(new Form1());
}
}
小結:
1).首選要使用"using System.Windows.Forms"語句導入WinForm的名稱空間
2).聲明Form1 類,此類是繼承、擴展了using System.Windows.Forms 名稱空間中的Form 類
3)."Application"類,此類也被定義在using System.Windows.Forms名稱空間中,由於此類封閉的,所有我們不能繼承。"Application"類主要作用是運行和退出Windows的應用程序,還可以處理Windows的消息。調用"Application"類的"Run"方法表明將要開始運行應用程序。
三.做一個透明的WinForm
當我第一次在視窗2000中看到透明的窗體,就想做出這樣一個窗體應該是非常難的。肯定要調用很多的API函數。當接觸了.Net以後,才發現用VisualC#做出一個透明的窗體是多麼簡單,只要設定一個值就可以了。下面還是讓我們來看看通過以下代碼生成的透明窗體到底是什麼樣。
透明窗體的源代碼:second.cs
using System ;
using System.Windows.Forms ;
using System.Drawing ;
public class Form2 : Form
{
public static void Main( )
{
Application.Run( new Form2( ) );
}
public Form2( )
{
this.Location = new System.Drawing.Point( 100 , 100 ) ;
this.Cursor = System.Windows.Forms.Cursors.Hand;
// 定義在窗體上,光標顯示為手形
this.Text = "透明的WinForm窗體!";
// 定義窗體的標題名稱
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
// 定義窗體的開始顯示位置是屏幕的中間
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
// 窗體的邊界是Fixed3D類型
this.ForeColor = System.Drawing.SystemColors.Desktop;
//以桌面的前景色作為窗體的前景色
this.Font = new System.Drawing.Font ( "宋體", 9 ) ;
// 定義字體類型,大小
this.BackColor = System.Drawing.Color.Blue;
// 定義背景色為藍色
this.ClientSize = new System.Drawing.Size( 440 , 170 ) ;
// 設置窗體的大小
// Opacity屬性設立窗體的透明程度,只對於視窗2000有效
this.Opacity = 0.60 ;
}
}
小結:
以上的代碼其實和第一個例子的代碼有很多相似,只是在Form2 Class中多定義了一些屬性。
1)."this"關鍵字,我想大家都注意到了這個關鍵字,那麼到底該如何理解他。舉例如下:當我在自我介紹的時候(其實就是在定義我的屬性),我會說"我的名字叫xx","我的年齡是xx","我的郵箱是xx"……你可能注意到"我的"這二個字,他就是指我本人--王天。同樣的道理在程序設計中,"this"關鍵字就是指向一個對象的實例。所有在上面代碼中"this.Font"、"this.Text"就是在設定當前或者正在運行的Form2實例的屬性。
2).再看看上面的代碼,在程序中又導入了一名稱空間--System.Drawing。通過這個名稱空間定義的類,就可以更好的設計對象,處理顏色和大小。
3).下面通過下表來具體說明一下在上面程序中設立的屬性的具體含義。
屬性 描述
Location 初始化WinForm的位置,就是當應用程序運行的時候,顯示WinFrom的固定位置
Cursor 當光標在WinForm上面的時候顯示的光標狀態
Text 設定WinForm的標題
StartPosition 這個屬性有點類似於"Location"屬性,"Location"屬性定義的是WinForm的絕對位置,而本屬性定義的是WinForm的相對屬性。本屬性的值定義為"CenterScreen"、"Manual"、"WindoowsDefaultLocation"、"WindowsDefaultBounds"、"CenterParent"
FormBorderStyle 定義窗體的邊界的樣式。通常設定為,"FixedSingle"、"Sizable"、"FixedDialog"、"FixedToolWindow"、"SizableToolWindow"
ForeColor 定義窗體的前景色彩
Font 定義放在WinForm上的字體的類型和大小
BackColor 定義窗體的背景色彩
ClientSize 定義WinForm的大小
Opacity 這個屬性是定義WinForm的透明程度,並且這個屬性只能用在視窗2000。屬性的區值0-1,代表從完全透明到不透明。
四.做一個帶一個組件的WinForm
本例子主要是介紹如何在WinForm中加入一個組件。如果你想在窗體中加入任何組件,首先,你必須要初始化這個組件(見下面程序中初始化Label一樣)。並且使用"Controls.Add"方法加入到窗體中,以下是程序運行的界面和源代碼。
源程序:three.cs
using System ;
using System.Windows.Forms ;
using System.Drawing ;
public class Form3 : Form
{
//定義一個標簽
private Label label1 ;
public static void Main( )
{
Application.Run( new Form3( ) ) ;
}
// 構造
public Form3( )
{
// 建立標簽並且初始化
this.label1 = new System.Windows.Forms.Label( ) ;
//先繼承一個Label 類
label1.Location = new System.Drawing.Point( 24 , 16 ) ;
//設定 Label的顯示位置
label1.Text = "這是一個WinForm中的標簽";
label1.Size = new System.Drawing.Size ( 200, 50 );
//設定標簽的大小
label1.TabIndex = 0 ;
label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
// 設定標簽的對齊方式
this.Text = "在WinForm中加入一個標簽!";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.AutoScaleBaseSize = new System.Drawing.Size( 8 , 16 ) ;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
// 設定窗體的邊界類型
this.ForeColor = System.Drawing.SystemColors.Desktop;
this.Font = new System.Drawing.Font ("宋體", 10 , System.Drawing.FontStyle.Bold ) ;
// 設定字體、大小就字體的式樣
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.BackColor = System.Drawing.Color.Blue;
// 設定背景色
this.ClientSize = new System.Drawing.Size( 250 , 250 ) ;
//把標簽加到窗體中
this.Controls.Add ( this.label1 ) ;
}
}
五.總結
以上是對用Visual C#開發WinForm應用程序進行了著重的介紹,由於在.Net FrameWork Sdk中的System.Windows.Froms名稱空間中封裝了許多關於界面設計的Class(類)。本文只能通過介紹一個基本的類--Form來了解一下Visual C#的強大功能和.Net Class Library(類庫)豐富的開發資源。通過本文也可以看出,要想充分利用Visual C#的強大功能,就必須了解並掌握.Net Class Library。也只有掌握了.Net Class Library,你所開發的.Net程序功能才會強大,生命力才更強。