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 类别。
发布日期 | 名称 | 说明 |
---|---|---|
.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利用数据控制项可以访问Access、FoxPro等多种资料库系统,也可以访问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,ActiveReports、MultiRow等。
语言特点
基本特点
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虚拟机的支持。