winforms

winforms

winforms 腳本都是基於c#,winforms是做客戶端軟體,WinForm是.Net開發平台中對Windows Form的一種稱謂。

簡介

簡單來說:WinForms 和 ASP.NET的平台支持C#和VB.NET程式語言。WinForms是做客戶端軟體,ASP.NET是基於網路開發的

Visual C#是微軟公司.Net FrameWork框架中的一個重要組成部分,也是微軟公司極力推薦的新一代程式開發語言。WinForm是.Net開發平台中對Windows Form的一種稱謂。.Net 為開發WinForm的應用程式提供了豐富的Class Library(類庫)。這些WinFrom 類庫支持RAD(快速應用程式開發),這些類庫被封裝在一個名稱空間之中,這個名稱空間就是System.Windows.Forms。在此名稱空間中定義了許多類,在開發基於.Net的GUI應用程式的時候,就是通過繼承和擴展這些類才使得我們的程式有著多樣的用戶界面。本文就試圖通過一個最基本的類--Form,來具體說明一下用Visual C#開發WinForms程式的具體過程。

過程

一.程式開發和運行環境及概括介紹

本文的所有調試程式都基於微軟視窗2000專業版本和.Net FrameWork Beta 2版。

二.第一個WinForms

如果你的機器已經達到了我們程式要求的運行環境,那就打開一個文本編輯器把下面的

程式代碼Copy到記事本裡面,然後另外儲存為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"方法表明將要開始運行應用程式。

三.做一個透明的WinForms

當我第一次在視窗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 定義窗體的前景色彩

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 ) ;

}

}四.做一個帶一個組件的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;五.總結

以上是對用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程式功能才會強大,生命力才更強。

Font 定義放在WinForm上的字型的類型和大小

BackColor 定義窗體的背景色彩

ClientSize 定義WinForm的大小

Opacity 這個屬性是定義WinForm的透明程度,並且這個屬性只能用在視窗2000。屬性的區值0-1,代表從完全透明到不透明。

相關詞條

相關搜尋

熱門詞條

聯絡我們