![]() 欒生兄弟? 上圖是打開 Visual Basic 2005 Express 軟體,選擇建立新專案之後的畫面,除了語言名稱的標題之外,差不多與之前學的C#完全一樣!是的,這就是微軟希望作到的事情,之前約20多年間,Basic與C語言都擁有一片天,各自發展得很好,但是程式不論內外都難以整合。 在.NET架構之下,新的C語言C#問世(之前主流是Visual C++),Basic語言則從VB 6.0變成VB.NET,最新版就叫VB2005。 在此,C與Basic語言不只是內部的函式庫統一了,連寫作語法都變得越來越像,兩個語言寫的程式還可以直接放在一起編譯成單一程式。所以堅持使用原來語言的程式師可以合作了!想一次學會兩種語言的人(就像我們),也容易多了。 Basic的掙扎 2002年微軟推出.NET的整合系列,因為對於上述兩種語言都是很大的衝擊,所以至今很多人還在使用舊版的C++或VB6。尤其是Basic原本是非常簡易好用的入門者最愛程式語言,進入VB.NET之後變得比較複雜,至今(2007)還有很多程式入門課使用舊版VB6.0,『新』書還是繼續上市。這個情況到VB2005版(2006年出的)之後一方面因為免費了,一方面程式寫作的自動協助功能加強,現在學VB2005已經比VB6更為簡單,各位學過了一些C#應該會覺得更為容易。 Basic的專長是使用者介面設計 Basic相對於C製作使用者介面比較容易,所以在此我們略過Console程式直接開始學Windows程式。基本上,VB視窗與C#視窗程式在物件操作部分幾乎完全相同,只有程式碼會不一樣,為了不要重複太多枯燥的過程,我們以隨著範例進行的方式,碰到程式碼的部份加強說明,不會循序完整的教大家所有的VB指令。 |
||||||||||||
|
實作範例: 一、小時鐘 1.到工具箱選擇一個標籤物件(Label1)以及一個計時器(Timer1),注意到在VB裡面物件名稱第一個英文字母是大寫!與C#相反。 2.雙擊表單進入Form_Load事件副程式,寫入程式如下圖。 3.雙擊Timer1進入Timer1_Tick事件副程式,寫入程式如下圖。 ![]() 注意到: a.事件副程式的長相不太一樣,在C語言都是function,在此都是Sub。 b.事件副程式標題後面多了Handles...表示驅動此副程式的事件! c.每行指令的後面不用寫分號。 d.大小寫會自動修正。真是太棒了! 自我挑戰→將時分秒分開! |
||||||||||||
|
二、簡單加法 1.在上述專案中加入兩個TextBox,一個Button和一個標籤(Label2) 2.在Button副程式中寫: ![]() 說明: a.在VB中宣告變數是以『Dim 變數名稱 As 資料型態』的方式 b.在VB中將文字轉數值可以簡單用Val(文字),而且不管是整數或浮點數、倍準數通通管用! c.資料型態的簡單對照:
|
||||||||||||
|
三、單選決策 1.到工具箱取得兩個RadioButton,一個寫上『男生』,一個寫『女生』;再放置一個標籤(Label3) 2.雙擊其中一個RadioButton,寫程式如下: ![]() 試試看,標籤會回應你的選擇。 說明: a.注意到VB的 If 格式中沒有大小括號,但是以 End If 作為邊界(終點)。 b.有無點選的屬性是Checked = True or False c.VB的習慣關鍵字多是大寫字母開頭,與C#相反。 |
||||||||||||
|
四、迴圈(連加法) 1.加入三個TextBox(3~5),一個按鈕(Button2)及一個標籤(Label4) 2.寫按鈕程式如下: ![]() 說明: a.VB迴圈的寫法一樣沒有大小括號,以Next作為結束 b.起終點與間隔的寫法是A To B Step C |
||||||||||||
|
五、多項選擇與鍵盤事件 1.將表單物件的 KeyPreview 屬性設為 True 2.在KeyDown事件中寫入以下程式: ![]() 說明:可以按A或B使字元出現於標題中,與C#的swith功能一樣,但是沒有括號,不需要break,用End Select結束。 |
||||||||||||
|
六、滑鼠事件→縮放影像 1.在表單放置一個影像盒物件,設定一張影像,SizeMode屬性設為StretchImage 2.在MouseDown事件中寫入以下程式: ![]() 說明:對著影像按滑鼠左鍵可以放大物件(大兩倍),右鍵縮小(小一半)。 |
||||||||||||
|
七、記事本 1.在表單放置主功能表、開啟檔案對話盒及一個文字盒物件,仿照C#記事本程式設定... 2.在功能表加入檔案→開啟舊檔及結束程式功能 3.程式碼如下: ![]() 說明: 1. 在C#用 this 代表表單自己,在 VB 中用 Me 2. 在VB中很多時候可以使用 My 捷徑,在此可以跳過 C# 較繁複的讀檔指令,用 My...ReadAllText 即可。 3. If .... Then Exit Sub,表示符合條件時直接跳出副程式,這樣寫比較簡單,C#就不行。 |