.Net平台Windows Forms程式設計簡介-1

來源:互聯網
上載者:User
引言:

  微軟的.Net平台堪稱為新一代的互連網平台。對於技術開發人員來說,.Net平台的兩大特性是非常卓越的,首先是其所提供的通用語言執行平台,也就是公用語言運行平台,另一方面就是龐大而全面的統一編程類。

  C#語言是微軟公司針對.Net平台才推出來的一門新語言,作為.Net平台的第一語言,它幾乎集中了所有關於軟體開發和軟體工程研究的最新成果。其不但繼承了C++、Java等物件導向的強大功能特性,同時還是繼承了VB、Delphi等程式設計語言的可視化快速開發功能,其是當前第一個完全面向組件的語言。

  .Net平台中的程式設計主要分為以下四個方面:Web Forms、Windows Forms、Web Service及Windows Service,下面我向大家介紹Windows Forms程式的設計。

  1、基本知識要點

  C#語言:C#語言自C/C++演變而來。它是現代、簡單、完全物件導向和型別安全的。如果您是C/C++程式員,學習曲線將會很平坦。許多C#語句直接借用您所喜愛的語言,包括運算式和操作符。C#是現代的程式設計語言。C#減少了C++的一些特性,不再有宏、模板和多重繼承。使編程更方便的新功能是嚴格的型別安全、版本控制、垃圾收集(garbage collect)等等。所有的這些功能的目標都是瞄準了開發面向組件的軟體。因此也把C#稱為面向組件的語言。

  類:類是一組具有相同資料結構和相同操作的對象的集合。類是對一系列具有相同性質的對象的抽象,是對對象共同特徵的描述。比如每一輛汽車是一個對象的話,所有的汽車可以作為一個模板,我們就定義汽車這個類。C#是物件導向的,而且所有的C#代碼都必須放在一個類中,不在有全域變數及全域名稱等。

  .Net類庫:微軟為.Net平台設計了非常龐大編程類。這些類包括從作業系統的底層到視窗介面,從資料庫開發到Web服務等,涉及面非常廣。這些類都是在公用語言運行時上,而且是管理、安全的代碼。通過使用.Net提供的“超”類庫,你可非常輕鬆的開發.Net平台上的四大類程式:即Web Forms、Windows Forms、Web Service及Windows Service。

  Windows Forms程式:類似於Windows程式,是指能在微軟公司作業系統平台如Windows 98,Windows NT及Windows2000等平台上面啟動並執行,有著非常漂亮臉蛋(如表單、菜單、各種控制等)的程式。Windows Forms是在.Net平台中初次出現的概念,也稱為Windows表單,由於是.Net Windows Forms程式,因此你的視窗系統就必須首先安裝.Net平台,才能運行。

  事件:在Windows系統中,我們對表單的各種操作都將為引發一個事件,如按一個按鈕引發一個點擊(Click),在文字框中輸入內容時將引發文字框的文本改變(Change)事件。事件產生時將要發送訊息,並由專門的訊息處理常式翻譯並處理訊息。

  Visual Studio .Net:是微軟.Net平台上的一個功能強大的、整合多種開發語言的軟體開發工具。通過該開發工具,大多數.Net程式設計語言都可以實現RAD(快速開發)。
2 Windows Forms中的幾個基本概念

  啟動程式

  Windows Forms程式與一般運用程式不同的是其是通過非常漂亮的外觀表單及表單上各種控制項與使用者互動。程式不是一步一步的執行,而是有一個訊息迴圈,根據使用者的各種操作所引發的事件選擇執行相應的功能。為了能管理、解釋Windows的各種訊息、使用者鍵盤或滑鼠輸入並響應各種事件,.Net類庫為我們提供了一個專門用於啟動Windows程式的類:System.Windows.Forms.Application,通過使用Application類,我們可以非常容易就啟動一個Windows Forms程式,並把有關訊息的解釋、鍵盤及滑鼠的輸入管理、各種事件的響應等都交由Application負責處理。

  另外,在Windows應用程式中,與一般的運用程式一樣,程式的入口也一個類中的Main()方法(注意Main要求首字母大寫),同樣必須是static(靜態)方法,否則程式將找不到進入點。

  下面,是C#中一個非常簡單的啟動Windows程式的例子:

static public void Main()

{
 Application.Run(new Form());

}

  另外,Windows Forms程式的結束也是由Application類來進行的。

  表單

  Windows作業系統最主要的成功得源於其漂亮的外觀,即表單。一般的Windows程式都有一個表單,你可以把各種各樣的控制項(如標籤、文字框、命令按鈕等)放置在表單上,組成一個非常人性的人機介面。在.Net Windows Forms中使用表單只需從System.Windows.Forms.Form類或其衍生類別的建立一個對象即可。

  下面的代碼,是C#中一個非常簡單的繼承Form(表單)類的例子:

public class myForm:System.Windows.Forms

{

private System.Windows.Forms.Button button1;

public myForm()

{

}

}

  在自訂的表單類myForm中增加了一個Button(按鈕)對象。
事件

  在Windows Forms程式中,幾乎使用者的大多數都將操作都將產生Windows事件,如按一個按鈕引發一個點擊(Click),使用者移動滑鼠有相應滑鼠移動的事件等;有一些事件是不是使用者操作產生而是系統自動產生的,如資料庫連結斷開、時間到達某一時刻或是使用外設時未就緒等。

  在Windows Forms中,每一個Windows控制項有非常多的事件使其可以達到與使用者互動,事件的監視及管理是由前面所說Application類負責的。在產生一個事件時一般經引發一系列操作,如點擊[重新整理] 按鈕使用程式重新從讀取資料庫中的資料、點擊表單上的關閉表徵圖將關閉視窗或退出程式等。程式員就是通過書寫事件的回應程式法(即事件所引發的操作)來達到對程式的控制及互動。

  在.Net中,事件的聲明是通過event(事件)關鍵字來聲明的,事件是一個類的成員之一。

  .Net中,事件的響應及處理是通過一個新的資料類型delegate(代表)來處理的,delegate(代表)非常類似於C/C++的函數指標,但不同的是, delegate(代表)是安全的、受管理的。

  如下面分別用三種語言聲明一個控制項Click事件的代碼:

public event EventHandler Click; [C#]

Public Event Click As EventHandler [Visual Basic]

public: __event EventHandler* Click; [C++]

  在上面的代碼中,EventHandler是一個代表類型,其在.Net類庫中的聲明如下:

public delegate void EventHandler(object sender,EventArgs e); [C#]
Public Delegate Sub EventHandler(ByVal sender As Object,ByVal e As EventArgs) [Visual Basic]
public __gc __delegate void EventHandler(Object* sender,EventArgs* e); [C++]

  事件回應程式法

  由於事件是解釋及管理是由Application對象進行的,程式員不需要知道使用者何時響應事件或者是響應了什麼事件,只需要為事件添加回應程式法即可。通過使用delegate(代表),你可以使用“+=”(加等於)操作符非常容易地為.Net類中的一個事件添加一個甚至多個回應程式法,還可以通過非常簡單的“-=”(減等於)操作符取消這些回應程式法。如下面,我們為一個按鈕的Click事件添加回應程式法的代碼:

button1.Click += new System.EventHandler(MyMethod);

  其中,MyMethod函數的定義如下:

void MyMethod(object sender, System.EventArgs e);

  這樣當使用者點擊按鈕或者是其它方法引發其Click事件時,MyMethod函數中的代碼將執行。






相關文章

聯繫我們

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