欒生兄弟?
上圖是打開 Visual Basic 2005 Express 軟體,選擇建立新專案之後的畫面,除了語言名稱的標題之外,差不多與之前學的C#完全一樣!是的,這就是微軟希望作到的事情,之前約20多年間,BasicC語言都擁有一片天,各自發展得很好,但是程式不論內外都難以整合。
.NET架構之下,新的C語言C#問世(之前主流是Visual C++),Basic語言則從VB 6.0變成VB.NET,最新版就叫VB2005
在此,CBasic語言不只是內部的函式庫統一了,連寫作語法都變得越來越像,兩個語言寫的程式還可以直接放在一起編譯成單一程式。所以堅持使用原來語言的程式師可以合作了!想一次學會兩種語言的人(就像我們),也容易多了。

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.資料型態的簡單對照:
C# VB
double Double
float Single
int Integer
string String
char Char
三、單選決策
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#就不行。