Visual Basic程式語言

Visual Basic是一種由微軟公司開發的結構化的、模組化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程式設計語言。這是一種可用於微軟自家產品開發的語言。它源自於BASIC程式語言。VB擁有圖形用戶界面(GUI)和快速應用程式開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連線資料庫,或者輕鬆的創建Active X控制項。程式設計師可以輕鬆的使用VB提供的組件快速建立一個應用程式

基本介紹

  • 中文名:Visual Basic程式語言
  • 外文名:Visual Basic
  • 類別:電腦程式設計語言
  • 套用領域:計算機等
  • 創始人:Alan Cooper
  • 源自:BASIC語言
基本信息,程式語言歷史,語言特色,語言基礎,注釋方式,特徵衡量,對象與類,相關控制項,語言特點,基本特點,語言缺點,派生語言,語言爭議,反方觀點,正方觀點,

基本信息

1991年,美國微軟公司推出了Visual Basic(可簡稱VB)。
Visual 意即可視的、可見的,指的是開發像Windows作業系統的圖形用戶界面(Graphic User Interface,GUI)的方法,它不需要編寫大量代碼去描述界面元素的外觀和位置,只要把預先建立好的對象拖放到螢幕上相應的位置即可。
Basic 實際上是一個短語的縮寫,這個短語就是 Beginners all_purpose symbolic instruction code ,其中文意思為“初始者通用符號指令代碼語言”。
Visual Basic 6 有學習版、專業版和企業版三種版本,以滿足不同的開發需要。學習版適用於普通學習者及大多數使用 Visual Basic 開發一般 Windows 應用程式的人員;專業版適用於計算機專業開發人員,包括了學習版的全部內容功能以及Internet控制項開發工具之類的高級特性;企業版除包含專業版全部的內容外,還有自動化構件管理器等工具,使得專業編程人員能夠開發功能強大的組骨子裡分散式應用程式。
Visual Basic 是一種可視化的、面向對象和採用事件驅動方式的結構化高級程式設計語言,可用於開發 Windows 環境下的各類應用程式。它簡單易學、效率高,且功能強大可以與 Windows 專業開發工具SDK相媲美。在Visual Basic環境下,利用事件驅動的編程機制、新穎易用的可視化設計工具,使用Windows內部的廣泛應用程式接口(API)函式,動態程式庫(DLL)、對象的連結與嵌入(OLE)、開放式數據連線(ODBC)等技術,可以高效、快速地開發Windows環境下功能強大、圖形界面豐富的套用軟體系統。隨著版本的提高,Visual Basic的功能也越來越強。5.0版以後,Visual Basic 推出了中文版,與前個版本相比,其功能有了很大提升。 但是,功能再強大,Visual Basic 仍然有一個缺點:在沒有MSVBVMDLL的計算機上必須安裝所需的DLL檔案。用它可設計作業系統,不過,比較困難。 在21世紀初,Microsoft 公司推出 Visual Studio .NET 2003,它與 Visual Basic 之間有了重大變化,Visual Studio 為各種編程工具做了一個平台,Visual Basic.NET 可在這種平台上運行。相對於傳統VB,有很大的不同。VB .Net,首次使用.Net構架進行可視化編程,並且能很好地與COM構架兼容,Visual Studio .NET 2003 套用 .NET Framework 1.1 。
2005年 Visual Studio 2005 則運用了 NET 2.0 的技術,更加的方便了程式設計師的工作。可是新的程式對系統配置要求也較高,需要微軟.Net Framework 2.0以上的.Net構架支持。
2007年12月,微軟(Microsoft)推出了Visual Studio 2008 Beta 2 發生了重大的變化,在代碼輸入的時候,可以比VB2005快很多,在非特殊的情況下,VB2008都會自動開啟、自動完成關鍵字這個命令,而且支持最新的 .NET Framework 3.5 SP1 Beta 。

程式語言歷史

Visual Basic從1991年誕生以來,現在已經18年了。BASIC是微軟的起家產品,微軟當然不忘了這位功臣。隨著每一次微軟技術的浪潮,Visual Basic都會隨之獲得新生。可以預見,將來無論微軟又發明了什麼技術或平台,Visual Basic一定會首先以新的姿態登上去的。如果你想緊跟微軟,永遠在最新的技術上最快速地開發,你就應該選擇Visual Basic。
1991-西雅圖夜空的雷電
隨著 Windows 3.0 的推出,越來越多的開發商對這個圖形界面的作業系統產生了興趣,大量的Windows應用程式開始湧現。但是,Windows 程式的開發相對於傳統的DOS有很大的不同,開發者必須將很多精力放在開發GUI上,這讓很多希望學習Windows開發的人員卻步。1991年,微軟公司展示了一個叫Thunder的產品,所有的開發者都驚呆了,它竟然可以用滑鼠“畫”出所需的用戶界面,然後用簡單的BASIC語言編寫業務邏輯,就生成一個完整的應用程式。這種全新的“Visual”的開發就像雷電(Thunder)一樣,給Windows開發人員開闢了新的天地。這個產品最終被定名為Visual Basic,採用事件驅動,Quick BASIC的語法和可視化的IDE。Visual Basic 1.0帶來的最新的開發體驗就是事件驅動,它不同於傳統的過程式開發。同時,VBX控制項讓可視化組件的概念進入Visual Basic。Visual Basic 1.0是革命性的BASIC,它的誕生也是VB史上的一段佳話。 Visual Basic 1.0
1992-漸入佳境的Visual Basic
由於Windows 3.1的推出,Windows已經充分獲得了用戶的認可,Windows開發也進入一個新的時代。Visual Basic 1.0的功能過於簡單,相對於Windows 3.1的強大功能沒有發揮出來。所以,微軟在1992年推出了新版本Visual Basic 2.0。這個版本最大的改進就是加入了對象型變數,比如 Dim b As CommandButton Dim c As Control
而且有了最原始的“繼承”概念,對象型變數分為一般類型(Control和Form)和專有類型(CommandButton和Form1等),一般類型的變數可以引用專有類型的實例,甚至通過後期綁定訪問專有類型的屬性和方法。還可以通過TypeOfIs運算符獲取對象實例的運行時類型信息(這個功能就是當今C#的is運算符或Java的instanceof運算符)。除了對語言的改進和擴充,Visual Basic 2.0對VBX有了很好的支持,許多第三方控制項湧現出來,極大地豐富了Visual Basic的功能。微軟還為Visual Basic 2.0增加了OLE和簡單的數據訪問功能。 Visual Basic 2.0標準版 Visual Basic 2.0專業版 1993-資料庫組件新添力量
Visual Basic 2.0推出沒幾個月,微軟就發布了新版本的Visual Basic 3.0,可以看出VB這時候旺盛的生命力。乍一看,Visual Basic 3.0的界面沒有太大的變化,但其實這個版本是非常及時的。它增加了最新的ODBC2.0的支持,Jet數據引擎的支持和新版本OLE的支持。最吸引人的地方是它對資料庫的支持大大增強了,Grid控制項和數據控制項能夠創建出色的數據視窗應用程式,而Jet引擎讓Visual Basic能對最新的Access資料庫快速地訪問。Visual Basic 3.0還增加了許多新的金融函式。此外還增加了相當多的專業級控制項,可以開發出相當水平的Windows應用程式。Visual Basic 3.0是98年以前中國最流行的Visual Basic版本,因為它開發出來的執行檔非常小,通常能用一張軟碟裝下。不過,Visual Basic採用虛擬機運行P代碼的做法也讓很多開發者不滿,他們認為這樣程式運行的效率很低,這時候Visual Basic的競爭者Delphi也誕生了。 Visual Basic 3.0標準版 Visual Basic 3.0特別版
1995-第二次革命性變化,向COM進軍
從1993年到1995年年中,Visual Basic一直沒有新的動靜,焦急的開發者都想一窺這個神秘的新版本到底發生了什麼變化。Visual Basic 4.0的BETA最後終於和大家見面了。這個版本包含了16位和32位兩個版本,16位的版本就像是Visual Basic 3.0的升級版,而32位版則是一場新的革命。首先,人們發現VBX控制項不見了,全部換成了OCX控制項,這個OCX可能是指OLE Custom Controls,這個OLE已經不是傳統的OLE了,用現在的話說,它就是COM控制項。第二個最大變化是Visual Basic 4.0所用的語言換成了Visual Basic For Application,這就和Office 95所採用的宏語言統一起來,這個新語言有很多亮點:
1、 加入了“類模組”。這是面向對象最重要的封裝性的基礎。
2、 加入了屬性過程,加上函式過程,子程式過程,VB已經有組件開發所需的封裝性特徵。
3、 加入了Byte類型、Boolean類型和Object類型。這大大完善了VB的類型系統。
4、 For Each語句和Collection對象。For Each語句給遍歷集合類型提供了極大的方便,現在可以在動態增長的Collection上使用For Each,而不用擔心集合內容的總數或煩人的下標問題。
這個版本的Visual Basic還能夠開發DLL工程,其實就是COM的DLL,可以將書寫好的類用這種方式和其他語言共享。
總之,這個4.0的版本為Visual Basic成為一種COM語言奠定了基礎。用Visual Basic 4.0開發基於COM的DLL比任何一種開發工具都方便。但是,Visual Basic 4.0的性能問題變得更加嚴重了,P-代碼的組件成為Visual Basic 4.0嚴重的性能瓶頸,而且巨大的運行庫也讓用戶感到不滿。Visual Basic 4.0對以前版本的支持也不好,使用了大量VBX的項目很難移植到Visual Basic 4.0中。因此,Visual Basic 4.0在中國的普及程度非常低。 Visual Basic 4.0
1997-Visual Basic的豐收年
1997年,微軟推出了Visual Basic 5.0,這個版本的重要性幾乎和4.0一樣高。COM(這時候叫ActiveX)已經相當成熟,Visual Basic 5.0當然對它提供了最強的支持。不過,國內還沒有意識到COM的重要性前主要對這個版本另一個最大的亮點十分關註:本地代碼編譯器。Visual Basic 5.0終於在用戶的呼聲中加入了一個本地代碼編譯器,它可以讓應用程式的效率大大提升。
Visual Basic 5.0的IDE支持“智慧型感知”,這是一項非常方便開發者的功能,可以不必記住很長的成員名稱和關鍵字,只要按“.”,想要的東西統統彈出來。 Visual Basic 5.0還支持開發自己的ActiveX 控制項、進程內的COM DLL組件、進程外的COM EXE組件以及在瀏覽器中運行的ActiveX文檔。這極大豐富了Visual Basic的開發能力,在Internet開發上,Visual Basic 5.0也能有所建樹。
1998-企業真正高效的源泉
Visual Basic 6.0作為Visual Studio 6.0的一員發布,證明微軟正在改變Visual Basic的產品定位,他想讓Visual Basic成為企業級快速開發的利器。Visual Basic 6.0在數據訪問方面有了很大的改進,新的ADO組件讓對大量數據快速訪問成為可能。數據環境和新的報表功能也讓數據開發有了全新的體驗。Visual Basic 藉助COM/COM+強大的功能,可以開發具有N層結構的分散式應用程式。同時,Visual Basic還可以在IIS上開發性能超群的Web應用程式。Visual Basic 6.0在語言方面和IDE方面的改進都不大,但是許多新增的組件成為Visual Basic開發人員手中的利器,如File System Object等。新的字元串函式Split和Replace等也給Visual Basic的程式設計師帶來很大方便。
總之Visual Basic 6.0已經是非常成熟穩定的開發系統,能讓企業快速建立多層的系統以及Web應用程式,成為當前 Windows 上最流行的 Visual Basic 版本。
2002-第三次革命性變化,向.NET進軍
從1998年發布到2002年正式推出Visual Basic. NET簡直吊足了開發者的胃口。從2000年就開始傳言的具有繼承、Try…Catch語句等新功能的全新VB7.0一直沒有露面。直到2001年,Visual Studio.NET的第一個BETA版問世的時候,所有人都呆了——這是Visual Basic嗎?And語句變成了BitAnd,數組只能從0下標開始,而且連Dim語句的意義都變了,幾乎所有的窗體控制項都變了,Long變成了Integer而Integer變成了Short,Variant不見了,Static不能用了……簡直是翻天覆地,人們已經無暇關注這個版本有什麼改進,轉而擔心我怎么才能接受。其實Visual Basic. NET完全是為了.NET Framework這一全新的平台而設計的,Visual Basic. NET的設計者一開始沒有掌握好新平台和舊語言的平衡。到了BETA2中,很多東西回歸了6.0,如BitAnd又變回了And,數組的定義語句也變回了原有的意義,Static也回到了Visual Basic中。但是BETA1驚人的變化讓所有的VB開發者怕了,他們覺得這種語言被改的千瘡百孔,有些人乾脆轉去研究傳說中的新語言C#。但是Visual Basic. NET渡過幾個BETA版本之後還是找到了正確的定位。Visual Basic. NET有對CLR最完善的支持,同時儘量保留著BASIC易懂的語法風格和易用性。這個版本新增加的功能已經數不清,最重要的幾個是:
1、 繼承。至此,Visual Basic完成了向面向對象轉變的道路。
2、 共享成員。
3、 Try…Catch結構化異常處理。
4、 Delegate和Interface。
5、 名稱空間。
6、 對自由執行緒的支持。
特別的是,Visual Basic. NET大大減少了Visual Basic語言的關鍵字,如GoSub、PSet等等。原先的Visual Basic有多達120個關鍵字,這給寫程式帶來了很大的不便,現在經過精簡,Visual Basic脫下了這個沉重的包袱。
Visual Basic. NET現在是一門現代的、強壯的、面向對象的、簡單的可視化開發語言。強大的語言功能吸引了很多開發者。歷史是在不斷重演的,Visual Basic. NET如今的處境和Visual Basic 4.0很相似,由於兼容性變差,人氣也降低了。同時由於依附於.NET Framework,程式發布造成了一定的困難。現在國內使用Visual Basic. NET的人相對於Visual Basic 6.0來講顯得很少。但是憑藉Visual Basic. NET強大的語言功能和MS的支持,Visual Basic. NET一定會顯出它的光輝來。
2003-穩中求變的新版本
Visual Basic. NET 2003是一個相當穩重的版本,改變很少,但對小處有很多改進。首先Visual Basic 6.0升級嚮導做了很大改進,這給從老版本痛苦升級的人帶來了更多一些的希望。其次在IDE方面,Visual Basic. NET 2003修正了許多錯誤,還讓事件處理恢復了6.0的開發體驗。語言方面只有兩項改進:
1、 在For、For Each語句中聲明循環變數。
2、 增加了數學移位運算符<<和>>。
在這個比較成熟穩定的新版本下,許多Visual Basic的愛好和開始重新了解Visual Basic. NET,社區裡面也漸漸熱鬧起來。但是,有些使用C#的開發者堅持認為Visual Basic. NET是垃圾,儘管Visual Basic. NET擁有比C#更多的功能和更好的IDE。這說明不了解Visual Basic. NET成為它普及的最大障礙。 2005-完美主義的Visual Basic,能否再現輝煌?
為了讓Visual Basic有最佳的開發體驗,Visual Basic 2005的設計者絞盡了腦汁。這次Visual Basic 2005光語言上的改進就足以讓Visual Basic的開發人員高興一陣子。挑重要的列在下邊:
1、 泛型
2、 運算符重載
3、 Partial Type
4、 窗體的默認實例(讓你用VB6的語法使用窗體)
5、 語法的多種改進
6、My關鍵字
現在用Visual Basic 2005隻要一行代碼就可以讀寫註冊表、訪問檔案、讀寫串口、獲取應用程式信息…… 用Visual Basic 2005完全可以稱作享受開發。而泛型、運算符重載等功能又可以讓Visual Basic的開發人員深入.NET Framework的全部功能,開發出最優秀的應用程式。
2008-功能極強且最易用的 Visual Basic
新版本的VB2008 具有下列新功能和加強功能
1、Language-integrated query: 可以讓使用者在VB2008中進行資料查詢。
2、物件關聯式設計工具會協助開發人員建立和編輯,使應用程式連線至資料庫的 link to sql 類別。
Visual Basic 發展簡史
發布日期名稱說明
.NET Framework 引入之前
1991-04
Visual Basic 1.0 Windows 版本
1992-09
Visual Basic 1.0 DOS 版本
1992-11
Visual Basic 2.0
對於上一個版本的界面和速度都有所改善。
1993-06
Visual Basic 3.0
包含一個數據引擎,可以直接讀取 Access 資料庫。
1995-08
Visual Basic 4.0
發布了32位和16位的版本。其中包含了對類的支持。
1997-02
Visual Basic 5.0
包含了對用戶自建控制項的支持,且從這個版本開始 VB 可以支持中文。
1998-10
Visual Basic 6.0
.NET Framework 引入之後
2002-02
Visual Basic .NET 2002 (7.0)
由於其使用了新的核心和特性,所以很多 VB 的程式設計師都要改寫程式。
2003-04
Visual Basic .NET 2003 (7.1)
主要改進了運行狀況,提升了 IDE 以及運行時穩定性。
2005-11
Visual Basic 2005 (8.0)
是 vb .net 的重大轉變,微軟決意在其名稱中去掉了".NET"部份。VB2005 提供 My 偽命名空間、泛型、操作符重載等新語言特性。
2007-11
Visual Basic 2008 (9.0)
提供支持 IIF 函式、匿名類、LINQ、Lambda 表達式、XML 數據結構等新語言特性。
2008-03
微軟宣布結束對於 VB 6.0 的延長支持。
2010-04
Visual Studio 2010 (10.0)
提供支持 Dynamic Language Runtime (DLR)、自動實現屬性、集合初始化、不需要在代碼斷行書寫時輸入下劃線“_”等新語言特性。
2012-05
Visual Studio 2012 (11.0) RC
提供支持更簡易的異步編程(Asynchronous Programming)、Iterator、擴充 Global 關鍵字等新語言特性。
2013-11-13-2
Visual Studio 2013
2014-11-13
Visual Studio 2015
Windows、iOS 以及 Android套用開發

語言特色

製作應用程式安裝盤等提供了友好的集成開發環境。
可視化的設計平台:在使用傳統的程式設計語言編程時,一般需要通過編寫程式來設計應用程式的界面(如界面的外觀和位置等),在設計過程中看不見界面的實際效果。而在Visual Basic 6.0中,採用面向對象程式設計方法(Object-Oriented Programming),把程式和數據封裝起來作為一個對象,每個對象都是可視的。開發人員在界面設計時,可以直接用Visual Basic 6.0的工具箱在螢幕上"畫"出視窗、選單、命令按鍵等不同類型的對象,並為每個對象設定屬性。開發人員要做的僅僅是對要完成事件過程的對象進行編寫代碼,因而程式設計的效率可大大提高。
事件驅動的編程機制:面向過程的程式是由一個主程式和若干個子程式及函式組成的。程式運行時總是先從主程式開始,由主程式調用子程式和函式,開發人員在編程時必須事先確定整個程式的執行順序。而Visual Basic 6.0事件驅動的編程是針對用戶觸發某個對象的相關事件進行編碼,每個事件都可以驅動一段程式的運行。開發人員只要編寫回響用戶動作的代碼。這樣的應用程式代碼精簡,比較容易編寫與維護。
結構化的程式設計語言:Visual Basic 6.0具有豐富的數據類型和眾多的內部函式。其採用模組化和結構化程式設計語言,結構清晰,語法簡單,容易學習。
強大的資料庫功能:Visual Basic 6.0利用數據控制項可以訪問AccessFoxPro等多種資料庫系統,也可以訪問Excel、Lotus等多種電子表格。
ActiveX技術:ActiveX發展了原有的OLE技術,使開發人員擺脫了特定語言的束縛,方便地使用其他應用程式提供的功能,使Visual Basic 6.0能夠開發集聲音、圖像、動畫、字處理、電子表格、Web等對象於一體的應用程式。
網路功能:Visual Basic 6.0提供的DHTML(動態HTML)設計工具可以使開發者動態地創建和編輯Web頁面,使用戶能開發出多功能的網路套用軟體。

語言基礎

注釋方式

在VB中,注釋有2種方式。
1.以Rem關鍵字開頭,並且Rem關鍵字與注釋內容之間要加一個空格。注釋可以是單獨的一行,也可以寫在其他語句行的後面。如果在其他語句行後使用Rem關鍵字,則必須使用冒號(:)與語句隔開。
2.也可以使用一個撇號(')來代替Rem關鍵字。若使用撇號,則在其他語句行使用時不必加冒號。
如:
1
2
3
4
5
6
7
PrivateSubCommand1_Click()
Dima,b
a=Text1.Text:Rem給a賦值
b=Text2.Text
Rem給b賦值
Msgbox"a+b的結果為:"&a+b,vbInformation,"提示"'用Msgbox輸出a+b的結果
Endif

特徵衡量

在 Visual Basic 中,可通過屬性、方法和事件來說明和衡量一個對象的特徵。
事件(Event)
事件是指發生在某一對象上的事情。事件又可分為滑鼠事件和鍵盤事件。例如,在命令按鈕(Command Button)這一對象上可能發生滑鼠單擊(Click)、滑鼠移動(Mouse Move)、滑鼠按下(Mouse Down)等滑鼠事件,也可能發生鍵盤按下(Key Down)等鍵盤事件。總之,事件指明了對象“什麼情況下做?”,常用於定義對象發生某種反映的時機和條件。
事件代碼如下:(此處以Command1的Click事件為例)
1
2
3
PrivateSubCommand1_Click()
EndSub
方法(Method)
方法是用來控制對象的功能及操作的內部程式。例如,人具有說話、行走、學習、睡覺等功能,在visual Basic中,對象所能提供的這些功能和操作,就稱作“方法”。以窗體為例,它具有顯示(show)或隱藏(hide)的方法。總之,方法指明了對象“能做什麼?”,常用於定義對象的功能和操作。
例如,讓Form2窗體顯示,就可以用如下代碼
1
2
LoadForm2'載入Form2
Form2.Show'這裡用了Form2的show方法
屬性(Property)
屬性是指用於描述對象的名稱、位置、顏色、字型等特徵的一些指標。可以通過屬性改變對象的特性。
有些屬性可以在設計時通過屬性視窗來設定,不用編寫任何代碼;而有些屬性則必須通過編寫代碼,在運行程式的同時進行設定。可以在運行時讀取和設定取值的屬性成為讀寫屬性,只能讀取的屬性成為唯讀屬性。總之屬性指明了對象“是什麼樣的?”,常用於定義對象的外觀。

對象與類

對象(Object)
Visual Basic.NET 具有“面向對象”的特性,Visual Basic.NET 套用種程式的基本單元是對象,用 Visual Basic.NET 編程就是用“對象”組裝程式。這種“面向對象”的編程方法與傳統的全部用代碼編製程序的方法有很大區別,就像用積體電路晶片組裝電視機和用三極體,二極體組裝電視機的區別一樣。顯然,“面向對象”的編程方法比傳統的編程方法更簡單,更方便,並且編寫出的程式也更加穩定。因此,“對象”可以被看做 Visual Basic.NET 程式設計的核心。
在 Visual Basic.NET程式設計中,對象中還可以包含頭,手,腿,腳等部位,其中的每個部位又可以單獨作為作為被研究的對象。在 Visual Basic.NET程式設計中,整個應用程式就是一個對象,應用程式中又包含著窗體(Form),命令按鈕(Command),選單(Menu)等對象。
類(Class)
在 Visual Basic.NET中,對象是由類創建的,因此對象可以說是類的具體實例,這就好比是蛋糕和做蛋糕的模具之間的關係。
各種不同的對象分屬於各種不同的種類。同一類對象可能具有一些不同的特徵(或是說同一類對象不一定具有完全相同的特性);具有某些相同的特性的對象,不一定是同一類對象,這就好比是人和猴子雖然都有身高、性別等特徵,但二者之間還存在著智商、語言等特性差異,這兩個對象之間的特性相差很多,根本就不能算是同一類對象。而男人和女人,雖然有著性別、生理等方面的差異,但他們絕大部分特性相同,可以算是同一種類。由此,可以歸結為一句話:同一類對象的絕大部分特性相同。

相關控制項

窗體項目。所以Visual Basic中的控制項大多和窗體項目有關。
分類
根據套用類型,Visual Basic控制項可以分為如下3類:
內置控制項
內置控制項即Visual Basic工具箱中的控制項,裡面包含了常見窗體程式所需要的控制項
Visual Basic中,大部分的程式執行都是在事件中完成的。
在代碼中,控制項的每一個事件都需要聲明,聲明方法類似一個子過程的聲明。大部分的控制項在雙擊控制項進入代碼界面的時候都會自動補完該控制項的最常用事件的聲明。具體代碼示範如下:
1
2
3
PrivateSubaa_bb()'聲明控制項aa的bb事件
EndSub
ActiveX控制項
ActiveX控制項包含不同版本Visual Basic提供的控制項和僅在專業版、企業版中提供的控制項,並且還包含第三方提供的控制項。
ActiveX控制項是對Visual Basic內置控制項的擴充,開發人員可以根據個人需要進行隨意擴充,擴充的ActiveX控制項將在工具箱中顯示。
在工具箱中添加ActiveX控制項的流程如下。
(1)打開一個Visual Basic 6.0項目,一次選擇【工程】->【部件】命令,在彈出的“部件”對話框中選擇“控制項”選項卡,在列表框中選擇要添加的ActiveX控制項
(2)返回Visual Basic主界面,此時添加的ActiveX控制項已被添加到工具箱內
可插入對象
在Visual Basic的工具列中,可以放置其他的第三方對象,可以像使用控制項一樣輕鬆使用。添加後的對象也在工具箱中顯示,添加對象的方法和添加ActiveX控制項類似,只要依次選擇【工程】->【部件】命令,在彈出的“部件”對話框中選擇“可插入對象”選項卡,再選擇添加的對象即可。
有關第三方對象,可以從受信任的來源下載控制項,並通過添加引用來導入。支持這些自定義的Vb的控制項有:ComponentOne Studio,Spread,ActiveReportsMultiRow等。

語言特點

基本特點

VB 的中心思想就是要便於程式設計師使用,無論是新手或者專家。VB使用了可以簡單建立應用程式的GUI 系統,但是又可以開發相當複雜的程式。VB 的程式是一種基於窗體的可視化組件安排的聯合,並且增加代碼來指定組件的屬性和方法。因為默認的屬性和方法已經有一部分定義在了組件內,所以程式設計師不用寫多少代碼就可以完成一個簡單的程式。過去的版本裡面 VB 程式的性能問題一直被放在了桌面上,但是隨著計算機速度的飛速增加,關於性能的爭論已經越來越少。
窗體控制項的增加和改變可以用拖放技術實現。一個排列滿控制項的工具箱用來顯示可用控制項(比如文本框或者按鈕)。每個控制項都有自己的屬性和事件。默認的屬性值會在控制項創建的時候提供,但是程式設計師也可以進行更改。很多的屬性值可以在運行時候隨著用戶的動作和修改進行改動,這樣就形成了一個動態的程式。舉個例子來說:窗體的大小改變事件中加入了可以改變控制項位置的代碼,在運行時候每當用戶更改視窗大小,控制項也會隨之改變位置。在文本框中的文字改變事件中加入相應的代碼,程式就能夠在文字輸入的時候自動翻譯或者阻止某些字元的輸入。
VB 的程式可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似於作業系統的樣子。有很少功能的對話框視窗(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB 的組件既可以擁有用戶界面,也可以沒有。這樣一來伺服器端程式就可以處理增加的模組。
VB 使用參數計算的方法來進行垃圾收集,這個方法中包含有大量的對象,提供基本的面向對象支持。因為越來越多組件的出現,程式設計師可以選用自己需要的擴展庫。和有些語言不一樣,VB 對大小寫不敏感,但是能自動轉換關鍵字到標準的大小寫狀態,以及強制使得符號表入口的實體的變數名稱遵循書寫規則。默認情況下字元串的比較是對大小寫敏感的,但是可以關閉這個功能。
VB 使得大量的外界控制項有了自己的生存空間。大量的第三方控制項針對 VB 提供。VB 也提供了建立、使用和重用這些控制項的方法,但是由於語言問題,從一個應用程式創建另外一個並不簡單。

語言缺點

Visual Basic 語言具有不支持繼承、無原生支持多執行緒、異常處理不完善等三項明顯缺點,使其有所局限性(此些缺點皆已在 vb .net 獲得改進)。
不支持繼承
VB 5.0 和 VB 6.0 都是基於對象的程式語言,但是不包含繼承特性。VB 中提供了特殊的類的功能,但是還是不能滿足程式設計師的需求。
無原生支持多執行緒
Visual Basic 對於多執行緒無原生支持,只能通過Windows API的調用實現,且極其的不穩定。因為在API創建的執行緒中,並沒有自動初始化運行時庫,導致部分的函式無法使用。一般的,在VB6等早期的VB開發環境下,使用API創建執行緒的目的是完成容易使程式假死的大量數據或者邏輯的計算。
異常處理不完善
Visual Basic 中內置異常處理,即使未寫異常處理代碼,一旦用戶出錯也會彈出一個明確寫出出錯原因對話框,接著程式終止。
Visual Basic 中可以使用 Err.Raise拋出異常。對系統及用戶拋出的異常的處理常用兩種模式:一是使用 On Error Resume Next 處理錯誤;另一種是使用 On Error Goto 將運行引入錯誤處理代碼。但相對 C++ 等語言而言,這樣的異常處理破壞了代碼的結構。

派生語言

微軟開發了一系列由 Visual Basic 所派生的語言:
VBA
Visual Basic for Applications(VBA):包含在微軟的應用程式中(如Microsoft Office),以及類似WordPerfect、Office這樣第三方的產品裡面。VBA 這樣嵌入在各種應用程式中看起來有些矛盾,但是它的功能和 VB 一樣強大。
VBS
VBScript(VBS):是默認的ASP語言,還可以用在Windows腳本編寫網頁編碼中。儘管它的語法類似於VB,但是它卻是一種完全不同的語言。VBS 不使用 VB運行庫運行,而是由Windows腳本主機解釋執行。這兩種語言之中的不同點影響ASP網站的表現。
vb.net
Visual Basic .NET(vb .net):當微軟準備開發一種新的編程工具的時候,第一決定就是利用 VB 6.0 來進行舊改,或者就是重新組建工程開發新工具。微軟後來開發了 VB 的繼任者Visual Basic .NET,同時也是.NET平台的一部分。vb .net程式語言是一種真正的面向對象程式語言,和 VB 並不完全兼容。
Visual Basic .NET(vb .net) 是新一代的 VB 語言,並不只是 VB 6.0 的簡單升級,vb .net 與 VB (泛指 VB 6.0 之前的版本) 之間有非常大的區別。其新特性主要表現在以下幾方面:
1.vb .net 完全集成到 Visual Studio 集成開發環境中,在這種集成開發環境與 VB 在若干方面有差異。主要體現在窗體的布局以及選單等方面都有所不同。
2.vb .net 項目與 VB 不同。它使用基於資料夾的模型,所有項目均放置在項目資料夾層次結構中。
3.vb .net 中使用ado .net來訪問資料庫,ado .net是.NET Framework的一部分。在 vb .net 中實現數據訪問的方法主要有兩種:其一是在程式設計階段,通過創建、配置數據適配器 DataAdapter 和生成數據集 DataSet;其二是在運行中,通過編程方式動態創建配置數據適配器和創建、生成數據集。
4.在 vb .net 中是使用asp .net技術來編寫 Web 頁面的。在asp .net中使用的也不是腳本語言,而是真正意義的程式語言。憑藉asp .net的 Web 應用程式、XML Web Services 等基於 Web 的功能,使得 vb .net 開發 Web 頁面與開發 Windows 應用程式很相似,Web 頁面代碼也顯得有條有理了。
5.vb .net 已經成為完全的面向對象的程式語言,並且新增更多語言特性。
Visual Basic .NET有提供轉換精靈,協助開發者將 VB 6.0 的程式代碼轉換為 vb .net 相對應之程式代碼。

語言爭議

程式設計師中,對於各種語言孰優孰劣的爭論並不少見,Visual Basic 更是成為了一種充滿了爭議的語言。

反方觀點

一些批評家認為 Visual Basic 是一種給兒童和菜鳥程式設計師的語言,它自從設計開始就是一種簡單的語言。一些C++和Java中的特性在 VB 中並沒有出現。在感受開發的方便和快速的同時,一些類似於編譯時進行類型和聲明檢查的功能在默認情況下是關閉的。這樣一些程式設計師一邊感嘆 VB 的易用性,一邊沮喪地看著一些類似於“未定義類型”錯誤的發生。
一些批評家認為 Visual Basic 的簡單特性使得其在未來具有傷害性。很多人自學了 VB,但是並沒有學到好的編程習慣。當 VB 進入課堂的時候,學生們不會學到很多基礎的程式技術和結構,因為很多技術已經包含在那些對用戶可見的組件裡面了。不用學習標準的編程習慣,因為 VB 具有可視化的特性,所以導致了一些莫名其妙的代碼的產生。而且很多錯誤和警告的檢查默認情況下都是關閉的,程式設計師很難找到隱藏的錯誤。有經驗的程式設計師在用 VB 編程的時候都會把這些選項打開。
一些批評家批評微軟簡單地拷貝了BASIC的思想到 Visual Basic 中。
Visual Basic 開發的程式只能運行在Microsoft Windows中;且運行時還需要 VB 運行庫。
Visual Basic 不能很好的綜合Windows的基礎 API,很多時候要使用低級運算的“小伎倆”來進行編程。而C 語言的低級記憶體運算比 VB 的要簡單得多。
VB語言作為計算機語言的入門,是很多學生學習編程的入門級語言,大學生利用VB語言開始了他們學習計算機的世界。

正方觀點

任何工具都是針對不同任務發明的,如同刀劍和鋤頭,刀劍高手未必是鋤地高手,刀劍高手除了殺人,不能生產糧食養人,所以任何工具歧視都是錯誤的。Visual Basic的強大在於能夠快速開發企業級軟體,使程式設計師有更多的時間和精力考慮用戶的需求,生產出滿足用戶需要的軟體,特別適合大型企業級軟體的開發,比如MIS、MRP、MRP II、ERP等重量級的軟體,而不是花很長時間去製作一個只有幾K的DLL。
Visual Basic 的最大的優勢在於它的易用性,可以讓經驗豐富的VB程式設計師或是剛剛懂得皮毛的人都能用自己的方式快速開發程式。而且 VB 的程式可以非常簡單的和資料庫連線。比如利用控制項可以綁定資料庫,這樣一來用VB寫出的程式就可以掌握資料庫的所有信息而不用寫一行代碼。
Visual Basic 開發的程式雖然僅在 Microsoft Windows 中得到原生支持,但 Linux 等平台中存在著一些項目,使得能夠使用 Visual Basic 的代碼在這些平台下順利編譯。
任何語言開發的程式都需要一定運行時環境的支持,對於大型軟體系統來說,需要支撐是很正常的,正所謂“站在巨人的肩膀上”。傳統 Visual Basic 開發的程式需要 VB運行庫的支持;Visual Basic .NET 開發的程式(如C#)需要 .Net Framework 的支持;Java 開發的程式需要 Java虛擬機的支持。

相關詞條

熱門詞條

聯絡我們