国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.Net平臺Windows Forms程序設計簡介 -2

2024-07-10 13:08:00
字體:
來源:轉載
供稿:網友
屬性

  我們知道,在面向對象的程序設計中,一個類有很多成員,這些成員包括域(fields)、構造函數、析構函數、方法(methods)、事件及屬性(properties)等。這些成員有的表示對象的一個特征,也有的使用對象執行一個操作。

  .net類中屬性(properties)非常重要,其主要用于表示對象的特征,如一個窗體的大小、位置、是否可以最大化、是否顯示控制欄及窗體的背景色彩等等。屬性(properties)對程序員是公開的,你可通過簡單的“=”(賦值號)就可訪問屬性。在.net類中,有的屬性只能讀、有的只能寫,當然大多數屬性是可以讀寫的,這主要取決于類中對屬性的定義。如下面的代碼在form(窗體)類中定義了一個控制欄是否顯示的屬性:

public bool controlbox {get; set;} [c#]

public property controlbox as boolean[visual basic]

  有了上面的定義,要使一個窗體不顯示控制欄,用c#只需要使用下面的簡單語句即可:

form1.controlbox=false;

  在windows forms程序設計中,我們都是通過設置大量的屬性值,形成一個非常漂亮的窗體的。另外,有了屬性,也增加了語言對rad(快速開發)的很好支持。

  控件:

  windows forms程序設計中,僅僅有窗體往往是不夠的,還必須有通過眾多的控件來充實窗體的內容,達到友好、人性化的人機操作界面設計。這此,.net類庫為我們準備了幾乎windows forms中會要用到的各種元素類,一般情況下,我們把這些類或其實例稱為控件,窗體就是通過各種各樣的控件充實起來的。

  其實,控件這一概念是在rad(快速開發)工具中運用起來的,這些開發工具把很多常用的類及相關內容非常形象化的放在工具欄或面板中,你只需要通過簡單的鼠標拖放等操作就可以為程序添加各種各樣的控件并設置控件的各種屬性,由開發工具自動生成相應的代碼。通過使用控件,使你的整個開發變得更加簡單了。

  在.net類庫中,基本上所有的控件都是由system.windows.forms.control類繼承而來的,該類主要提供非常基本的、讓類能實現形象化顯示、處理各種鍵盤及鼠標的輸入并響應各種事件等。

  由于大多數控件都是從control類中繼承,而該類中有一個屬性即controls表示當前控件的所有子控件集合。因此,自己寫代碼把一個控件添加到窗體中非常簡單,只需要把所要添加的控件對象加入當前窗體的controls屬性集合中即可,如下面的c#代碼:

form1.controls.add(new button());

  將在窗體form1上添加一個按鈕控件。

  另外,你還可以定義自己的控件,主要通過system.windows.forms.usercontrol類(該類是control的派生類),當然使用control類一樣可以。

3 windows forms程序設計簡單步驟

  通過前面的介紹,大家可能已經大概知道一個windows forms的設計過程了。一般情況下,設計開發一個windows forms程序的步驟如下:

  第一步:程序需求分析

  作為一個成熟的程序員,都會對程序的需求作比較細致詳細的分析,并不斷的與相關人員交流溝通,最終得到一個比較可行的解決方案。需求分析在程序設計中是必不可少的,在此就不過多講述。

  第二步:設計你的類及對象

  面向對象程序設計中最為關鍵的部份就是對程序處理問題的對象化。因此,在書寫程序代碼前必須花更多的時間在程序所解決問題的對象化及類設計上。并解決問題的各種事務邏輯及流程。

  一般情況下,面向對象的設計分為兩個階段,即高層設計和低層設計。

  高層設計階段開發系統的結構,構造待開發軟件的總體模型。在這個階段,標識出在具體的計算機環境中進行問題求解所需要的概念,增加了一批需要的類,這些類包括那些使得軟件系統能夠與外部世界進行交互的類。并輸出適合應用軟件要求的類、類之間的關系及應用子系統的視圖規格說明。

  低層設計集中于類的詳細設計階段。類設計的目標是形成單一概念的模型,一個獨立的類表示一個概念,以及設計的部件應該是可復用的和可靠的。

  類的設計過程中需要采用信息隱蔽、高內聚低耦合等設計原則。在面向對象的技術中,利用即存類的復用是一個很大的優點。

  在windows forms的類設計過程中,一定要充分運用各種.net已存在類的復用,并在其基礎上增加自己類所需的部件及功能等。
第三步:界面設計(設計窗體及控件)

  由于windows forms程序主要講究人機界面的美觀性及友好性。因此,除了書寫效率非常高的代碼及算法實現程序功能外,windows forms中還將把界面的設計作為一個重點。

  界面設計主要是通過設置控件及窗體的各種位置、大小、形狀、色彩等外觀屬性而實現。當然,要想實現非常友好的用戶界面,完全通過在記事本等軟件進行代碼的錄入及憑感覺調整窗體及各種控件的大小、位置及外觀等是很難完成的(僅管你通過記事本也能寫比較大的程序),我們必須借助各種各樣的開發工具,特別的快速開發(rad)工具的使用。

  當前,有很多可以編寫.net程序的rad工具軟件,其中最為完善,功能最為強大,非微軟的visual studio .net莫屬。該軟件是一個集多種語言為一體的快速開發(rad)工具,提供強大的軟件工程管理、計算機資源管理、智能代碼感知技術及強大的程序試調等功能。使用visual studio .net開發你的各種.net應用程序,一切都將會變得事半功倍,而且你會發覺編程變得是那么輕松的事兒。

  通過使用visual studio .net,你設計窗體及程序界面變得很簡單了。你只需要單的鼠標拖放、位置調整等操作就可以完成程序的大多數設計。visual studio .net其自動生成的代碼模板及規范化的注釋,還可以通過非常簡單的雙擊控件為其添加各種事件響應函數等。另外使用visual studio .net,還能很好支持.net的多語言交叉繼承等功能。

  第四步:為窗體及控件添加各類事件響應方法

  在窗體及界面設計完成后,余下的事就是給程序添加具體的源代碼了。由于,windowsforms基本上是通過由引發事件到響應事件再到執行事件這樣一個過程來達到與用戶的交互的,因此,我們所寫的源代碼大多數都是控件或窗體的各種事件響應方法,同加上一些公用的函數等,有效組合到一起就可以使你的程序按你的要求辦事了。

  如果你使用visual studio .net,那么,添加事件將是非常簡單的,大多數時候你只需要雙擊控件就可以為控件添加常用的響應方法。其它的事件響應方法也可以通過其智能代碼感知技術的幫助下很快地加入到程序中。

  第五步:啟動程序

  一切就緒過后,現在可以寫啟動程序的代碼了。當然,如果你使用visual studio .net,可能關于啟動程序的代碼它都為了準備好了。前面介紹過,啟動windows forms程序只需要通過application類即可,該類是一個封裝類,大多數的方法都是表態的,不能創建該類的實例即可以使用。使用application一般情況下需要一個窗體(不是絕對需要),而全面你所設計的窗體類此時可用上了,直接構造你窗體類的一個實例即可。而application類將會為你做很多事,包括內存及資源分配,各種底層組件的調用等。

  4 一個完整而簡單windows forms程序

  下面我們將列出一個用c#寫的完整整而非常簡單的windows forms程序,該程序通過繼承定義了一個自己的窗體類helloworld。啟動程序將看到程序上有一個按鈕控件,點擊按鈕控件將顯示一個彈出菜單。

  程序幾乎包括了前面所講的各種要點如窗體、控件、控件屬性、事件、事件響應等。代碼中包括了具體的注釋說明,請大家仔細體會!
////////helloworld.cs源程序

using system;//引入system命名空間,其包括了.net中大多數的基本數據類型,如int,string等

using system.drawing;//引入system.drawing命名空間,其中包括了windows forms中的各種基本的圖像操作要素

using system.windows.forms;//引入system.windows.forms命名空間,其定義了windows forms程序中所涉及到的大部份類,如窗體、控件、application類等

public class helloworld:system.windows.forms.form //通過繼承form而定義一個helloworld的窗體類,該類具有form類的所有成員及特性

{

private system.windows.forms.button button1;//定義helloworld類的一個成員(一個按鈕)

public helloworld()//helloworld類的構造函數

{

button1=new button();//生成一個button實例,也可以說成初始化helloworld類的button1成員

button1.text="testbutton";//設置按鈕button1的text屬性值

button1.location=new point(100,100);//設置按鈕button1的location值

button1.click+=new system.eventhandler(mymethod);//為按鈕button1的click事件添加響應方法

this.text="hello world!";//設置自定義窗體的文本(text)屬性,該屬性將成為窗體的標題

this.controls.add(button1);//把按鈕窗體添加到窗體中,使窗體可以顯示。

}

public static void main()//程序入口

{

application.run(new helloworld());//生成helloworld實例并通過application.run()靜態方法啟動程序,

}

private void mymethod(object sender,system.eventargs e)//定義事件響應函數,請注意參數的使用,其與system.eventhandler代表中的參數要一致

{

messagebox.show("you have clicked the button","information");//使用彈出框彈出提示信息。

}

}


  編譯該程序的方法,直接把代碼拷到記事本中,保存為helloworld.cs文件,然后在命令行輸入csc helloworld.cs即可編譯(我們假設helloworld.cs在當前目錄上)。編譯完成后將生成一個名為helloworld.exe的文件,些時直接在命令行輸入helloworld程序即可運行程序。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巢湖市| 朝阳区| 综艺| 民权县| 吉安市| 澎湖县| 山丹县| 长乐市| 西昌市| 石家庄市| 新密市| 澜沧| 尖扎县| 贵德县| 沐川县| 万盛区| 博白县| 清流县| 江都市| 娱乐| 洛宁县| 普定县| 翁牛特旗| 清水县| 灌云县| 富顺县| 宜川县| 科技| 霍林郭勒市| 阿勒泰市| 二手房| 水富县| 津市市| 曲阜市| 绵阳市| 五家渠市| 邹城市| 江川县| 桐梓县| 绥芬河市| 邵东县|