
|
視窗程式與物件導向 對於各位來說,可能在上課之前根本不知道有什麼程式是『非』視窗程式!前幾節的 Console 程式讓大家見識到比較原始或者說核心的程式樣貌,要從那種程式模式硬生生的『畫出』漂亮的視窗或滑鼠的功能,不是不可能,但是太麻煩。所以前輩們一直努力讓已經作好的程式可以不必重寫,就是讓晚輩的我們可以直接使用前人的成果! 這不是消極的抄襲,想一想?如果我們使用的文明科技每樣都必須自己做(手機?)了才能用,世界會是什麼樣子?科技太龐大,所以我們必須減少學習的量,以便集中精神在必要的工作上。視窗程式設計和Console不同的主要特性是,他不完全依靠程式碼來建構程式,甚至大部分是使用別人寫好的程式元件,我們多數時候只是組裝,只有關鍵部分、與別人需求不同之處或新發明的部份才寫程式碼! 所謂的別人寫好的程式元件通常已經『物件化』,對於初學者的第一個感受是不會看到大段的文字程式碼,而是被簡單可愛的小圖示所取代,要加入別人的程式,並不需要複製、拷貝文字,而是用滑鼠點選、拖曳圖示即可,很像組裝模型。事實上,物件導向設計的意義相當深奧廣大,在我們開始使用之後再陸續介紹細節會比較清楚。現階段你只要理解到,物件導向的目的是簡化程式的複雜度,讓我們『一般人』也可以進入程式領域設計一些特定功能的程式。正如小學生也可以使用手機一樣! |
|
選擇專案 寫視窗程式的開始必須先告知IDE我需要視窗類型的專案,在新專案類型選Windows應用程式,此時也可以改變預設專案名稱, 預設的WindowsApplication1翻譯就是視窗(Windows)應用程式(Application),最好改一個有意義的名稱。 ![]() 設計環境 開啟視窗程式設計環境後的畫面大致如下: ![]() 看起來複雜,在此也不會完整說明,只提示馬上會用到的重要部分: 中央的表單:標示為Form1灰色底的小視窗是我們未來程式的外觀,很像一張小畫家的畫布,我們可以在上面用滑鼠設計程式的外觀。 左邊的工具箱:就是前面說的『很多已經做好的程式元件』,如果需要使用它只需拉到表單上即可。 右邊的方案總管:你可以看到很多檔案已經產生,而我們要處理的在現階段只有 Form1.cs,Form1就是中央的表單,cs是C#(C Sharp的縮寫)。 程式碼:Form1其實有兩個部分,一個是上面看到的圖形介面,一個是程式碼,請在方案總管上方找到程式碼檢視的圖示,按下可見到中央區變成下圖: ![]() 看起來與Console程式很像,只是前面引用(using)的程式庫比較多, 請注意:接下來的程式碼都必須寫在public partial class Form1 : Form 的範圍內! |
|
Say Hello! 做到這邊如果你按下F5會看到你的視窗程式已經存在了!會有一個Form1小視窗出現,也可以如一般視窗一樣操作,放大、縮小或關掉等。 先關掉這個Form1,回到可以設計程式的狀態,用滑鼠雙擊設計中的表單,畫面會切到程式碼檢視,而且出現一個叫Form_Load的程式框架, 請在裡面寫一行程式:this.Text = "Hello!"; 執行後Form1視窗的標題會變成Hello! ![]() this原意是這邊,在此是代表表單自己的意思,Text是文字,加起來this.Text意思很好猜,就是表單的文字,也就是標題啦! 我們定義表單標題等於Hello,也成功了。此例中表單是我們處理的『物件』,而Text是它(this)的屬性。 有如『我』算一個物件的話,我的名字應該就是我的屬性之一! 那麼Form_Load是什麼?Load是載入的意思,Form_Load表示『當表單載入時』,裡面的程式就是載入時該做的事情! 程式未執行時記憶體沒有Form1這個實體,執行開始會開始建立(載入)程式設計的表單,這是一個『事件』! 請切換到表單設計的視窗,並到功能表選擇檢視→屬性視窗。會見到方案總管下面出現這個視窗: ![]() 屬性調整: 這邊可以看到表單(Form1)的屬性非常多,你可以直接在設計時就修改屬性,或者在程式進行中用程式碼控制。 譬如要修改背景色可以在上述的Form_Load副程式中加入:this.BackColor = Color.Blue; 即可變為藍色! 事件種類: 表單的『事件』也分很多種,前面玩的是表單載入事件,在屬性視窗的閃電標誌上按一下,你可以看到所有可引發的『事件』! ![]() 試試看雙擊MouseDown事件,會切換到程式碼檢視,並出現一個事件副程式框架Form1_MouseDown,在此寫一個更換標題或顏色的程式, 執行程式後對表單按下滑鼠(MouseDown),就會執行你的程式。這樣應該對事件副程式應該有更深的了解了吧? 方法 每個物件都有屬性,還可能有一些『方法』,就是它會做的事情!試試看在MouseDown事件副程式裡面寫一行程式: this.Close(); 執行後視窗會直接關掉(Close)!這些方法其實是包含在物件裡面的一部份程式,你也可以發現,在打程式碼過程中,其實會自動顯示出物件的屬性與方法供你選擇,很方便的,不過要知道詳細的程式語法,還是必須多看書上課或者看線上說明文件。 ![]() 當出現上面的提示時,我們可以用滑鼠點選我要的項目,或者按鍵盤『Ctrl+Enter』都可以自動讓項目變成程式碼,減少打錯字的機會。 不過很常出現的問題是,上述方法不會完整寫完程式碼,通常『方法』後面必須加上小括號,所以上例完整程式碼尾端應為Close(); 必須時時提醒自己括號的問題。 |
|
本節提要: 1.物件導向程式設計基本概念 2.C#視窗程式設計環境 3.物件、屬性、事件與方法的意義。 |