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