内容简介
本书是世界级VB专家Rod Stephens奉献给广大程序员的编程心得与忠告,是学习Visual Basic 2008编程绝佳的参考手册。本版对上一版进行了大量的扩充,新增了有关WPF、LINQ、UAC安全、WCF等方面的内容。书中的基础部分几乎涵盖了Visual Basic 2008所有大大小小的知识点。提高部分则从面向对象编程、使用图形及与环境交互等方面阐述了Visual Basic 2008编程的实质性内容,其中提供了大量的示例代码,这不仅可以提高读者的编程技能,而且能使读者掌握大量的编程技巧,领悟编程精髓。附录部分提供了Visual Basic2008语言的参考,以便读者随时查找有用的信息。 这本综合性的编程参考手册由微软最有价值专家(MVP) Rod Stephens编写,淋漓尽致地展现了作者对VB最新版的基本主题广泛而扎实的理解。本书阐释了在现代Windows 环境中构建VB应用程序时所使用的窗体、控件和其他对象,分析了使VB成为多功能语言的强大开发环境,并深入研究了VB语言本身以及如何使用它完成一些重要的开发任务。 本版中的新示例以及广泛修订并重新测试的代码可帮助读者深入了解VB 2008。大量附录可帮助读者将所熟悉的语言转换为相应的VB 语法。读完本书后,您会发现本书涉及了使用VB 2008构建复杂应用程序所需的所有技术。
被誉为“最后一位全才”的艾萨克•牛顿爵士是一位颇有造诣的物理学家(他的三大运动定律是经典力学的基础,而经典力学定义天体物理学长达3个世纪)、数学家(他是微积分学的发明者,提出了求方程根的牛顿法)、天文学家、自然哲学家和炼金术士。他发明了反射式望远镜、色彩理论和冷却定律并研究了音速。 同样重要的是,他是在相对论、量子力学、基因序列、热力学、并行计算以及大量其他极其复杂的科学分支出现之前出生的。 如果您曾用过Visual Basic 3,那么一定了解其一切。Visual Basic 3是相对较小但功能强大的语言。Visual Basic 4向该语言中添加了类,使Visual Basic变得更为复杂。版本4、5、6添加了对数据库编程和其他主题(如自定义控件)的更多支持,但Visual Basic仍是较容易理解的语言,如果您花些时间,就可成为其专家。 Visual Basic .NET极大地加速了Visual Basic的发展。.NET Framework向Visual Basic中添加了强大的新工具,但同时也加大了复杂性。相关的技术以不断增加的速度添加到Visual Basic语言中,因此,要让某个人成为有关Visual Basic的每个主题的专家是不可能的。 为了触及Visual Basic的各个方面,您需要深入了解数据库技术、自定义控件、自定义属性编辑器、XML、加密技术、串行化、二维/三维制图、多线程、反射、代码文档对象模型(DOM)、诊断技术、全球化、Web服务、进程间通信、工作流、Office、ASP以及更多内容。 本书并不试图涉及所有方面,而是提供对基本的Visual Basic主题的广泛而扎实的理解。介绍了使Visual Basic成为高效率语言的强大开发环境。讲述了Visual Basic语言本身并解释了如何使用它来执行大量重要的开发任务。 本书还介绍了窗体、控件和其他Visual Basic提供的用于在现代窗口环境中构建应用程序的对象。 本书没有涉及Visual Basic相关的每个主题,但介绍了开发人员构建复杂应用程序所需的大部分技术。 0.1 使用Visual Basic 2008的原因 至今为止,软件工程师已接触到5代语言。第一代语言(1GL)是机器语言:0和1。 第二代语言(2GL)是汇编语言,它提供了机器指令的简单记忆方法,还简单提供了编写机器代码的少量额外工具。 第三代语言(3GL)是更高一级的语言,如Pascal和FORTRAN。它们提供了更复杂的语言元素,如子例程、循环和数据结构。 第三代语言(4GL)是“自然语言”,如SQL。它们让开发人员使用某种类似于人类语言的语言来执行编程任务。例如,SQL语句“SELECT*FROM Customers WHERE Balance>50”让数据库返回有关欠款大于$50的客户的信息。 第五代语言(5GL)提供了强大的、高度图形化的开发环境,允许开发人员以更复杂的方式使用底层语言。Visual Studio开发环境极其强大。它提供了图形化编辑器,使得构建窗体和编辑属性变得非常简单;提供了IntelliSense功能帮助开发人员进行输入;提供了自动完成功能,使开发人员可以使用有意义的变量名称,而不必浪费时间完全靠手工输入;提供了断点、监视器和其他高级调试工具,让应用程序的构建更容易。 Visual Basic使用了一个最为强大的开发环境——Visual Studio,但它不是使用该环境的唯一语言。C#语言也使用Visual Studio开发环境。因此,问题是应使用Visual Basic还是C#? Visual Basic程序员经常会开这样的玩笑:“Visual Basic .NET和C#之间的区别是什么?大概3个月!”这个玩笑暗示Visual Basic .NET语法更容易理解,并且使用它构建应用程序更为快速。同样,C#程序员也有自己的关于Visual Basic .NET的玩笑,也是暗示C#的功能更为强大。 实际上,Visual Basic .NET并不比C#更易用,而C#也并不比Visual Basic .NET功能更为强大。两种语言的基本形式非常类似。除了一些风格上的区别(Visual Basic面向代码行,而C#则使用大量大括号和分号)外,这两种语言在很多方面都非常相似。两种语言都使用Visual Studio开发环境,都能访问支持类和工具的.NET Framework,并且都提供了执行基本编程任务的类似语法。 这两种语言的主要区别在于风格。如果您曾经使用过以前版本的Visual Basic,或许会发现Visual Basic 2008更易于上手。如果您曾经使用过C++或Java,或许会发现C#(或者是Visual C++或Visual J#)更容易学习。 Visual Basic与其他Microsoft产品有一些联系。例如,ASP使用Visual Basic创建交互式Web页面。Microsoft Office应用程序(Word、Excel和PowerPoint等)和许多第三方的工具使用Visual Basic for Application(VBA)作为宏编程语言。如果了解Visual Basic,就可以在使用其他语言时处于优势地位。活动服务器页面(Active Server Pages,ASP)和VBA基于.NET之前的Visual Basic版本,虽然您不会立刻就知道如何使用它们,但是如果需要学习ASP或VBA,掌握它们将会占有很大的优势。 如果您是编程新手,那么Visual Basic 2008和C#都是很好的选择。笔者个人认为Visual Basic .NET可能更容易学习一些,但是这种观点可能稍微带有一些偏见,因为笔者在C#出现之前一直都在使用Visual Basic。选择哪种语言并不是大问题,如果需要的话,您可以在后面很容易地改为使用另一种语言。 0.2 本书的读者对象 本书的读者对象是所有层次的程序员。本书从头开始讲述Visual Basic 2008语言,因此读者不需要学习该语言的以前版本。本书也介绍了许多中、高级主题。本书对于各个主题的介绍都非常深入,即使是有经验的开发人员也会发现新的提示、技巧及语言细节。已经掌握了该语言的读者,仍然可以通过本书发现一些有用的信息,并且本书的参考附录将帮助您非常容易地查找已经遗忘的细节。 本书中一些章节快速讲述了较为基础的内容。如果您之前从来没有进行过编程并且不了解计算机,就可能需要先阅读一些基础的书籍。如果您基本了解计算机,就可以轻松地通过本书学习Visual Basic 2008。 如果已经使用其他任何语言进行过编程,就应该熟悉一些基础内容,如变量声明、数据类型和数组,因此应该可以毫无困难地学习本书。本书的参考附录可以很好地帮助您将已经了解的语言转换为对应的Visual Basic语法。 0.3 本书的结构 本书共分为6大部分。下面简要描述每一部分中的章节。如果您是有经验的程序员,可以参阅这些说明来决定跳过哪些章节及详细学习哪些章节。 第Ⅰ部分 IDE 这一部分的章节从Visual Basic开发人员的视角介绍了Visual Studio开发环境(IDE)。这个IDE对于C#和其他人员来说也是大体相同的,但也有一些区别,如哪个键盘快捷键执行哪个任务。 第1章“IDE简介”介绍了如何从Visual Studio集成开发环境入手。讲述了如何为不同的开发配置IDE。定义并描述了Visual Basic项目和解决方案,演示了如何创建、运行和保存新项目。 第2章“菜单、工具栏和窗口”讲述了IDE的菜单和工具栏中最有用和最重要的命令。IDE的菜单和工具栏包括上百个命令,因此该章仅重点介绍最为有用的命令。 第3章“定制”介绍了如何定制IDE,讲述了如何创建、隐藏和重新安排菜单和工具栏,使得易于使用您认为最为有用的工具。 第4章“Windows Form Designer”讲述了可用于构建Windows窗体的设计器。介绍了如何创建、移动和复制控件以及调整其大小。说明了如何设置控件属性和添加代码响应控件事件。还介绍了如何使用便捷的设计工具,如智能标记和命令动词。 第5章“WPF设计器”介绍了如何使用WPF(Windows Presentation Foundation)窗体设计器。该章类似于第4章,但介绍的是WPF窗体而非Windows窗体。 第6章“Visual Basic代码编辑器”讲述了开发人员使用的一个最为重要的窗口:代码窗口。解释了如何编写代码、设置断点、使用代码段和最大程度地利用IntelliSense。 第7章“调试”介绍了Visual Studio提供的调试工具。讲述了调试窗口,介绍了一些诸如设置复杂断点来定位故障之类的技术。 第Ⅱ部分 开始学习 这一部分介绍了Visual Basic语言的大部分内容和支持它的对象。解释了窗体、控件和程序用于构建用户界面的其他对象,介绍了如何放置后台代码来实现程序的功能。 第8章“选择Windows窗体控件”提供了可放置在窗体上的Windows窗体控件的一个概览。它按类别组织这些控件,以帮助您找到可用于特定目的的控件。 第9章“使用Windows窗体控件”较详细地介绍了如何使用Windows窗体控件。解释了如何在设计时或运行时构建控件、如何设置复杂属性值以及如何使用许多不同类型控件常用的有用属性。还介绍了如何添加事件处理程序处理控件事件以及如何验证用户输入的数据。 第10章“Windows窗体”讲述了用于Windows窗体应用程序中的窗体。窗体只是另一种控件,但它们在应用程序体系结构中的唯一地位意味着它们有一些特殊的属性,该章就将讲述这些属性。 第11章“选择WPF控件”概述了WPF控件。本章中按类别组织这些控件,以帮助您找到可用于特定目的的控件。该章类似于第8章,但它介绍的是WPF控件而不是Windows窗体控件。 第12章“使用WPF控件”较详细地介绍了如何使用WPF控件。该章类似于第9章,但它介绍的是WPF控件而不是Windows窗体控件。 第13章“WPF窗口”介绍了WPF应用程序使用的取代Windows窗体的窗口。该章类似于第10章,但它介绍的是WPF控件而非Windows窗体控件。 第14章“程序和模块结构”介绍了构成Visual Basic项目的最重要的文件。讲述了项目可能包含的隐藏文件,解释了一些可提供给模块中代码的结构,如代码区域和条件编译代码。 第15章“数据类型、变量和常量”解释了Visual Basic提供的标准数据类型。介绍了如何声明和初始化变量和常量,并且介绍了变量作用域。讨论了值类型和引用类型、按值或按引用传递参数及动态创建参数变量。还介绍了如何创建数组、枚举类型和结构体。 第16章“运算符”描述了程序用于执行计算的运算符。这些运算符包括算术运算符(+、*、\)、字符串运算符(&)及Boolean运算符(And、Or)。介绍了在表达式结合多种类型的运算符(如算术运算符和Boolean运算符)时引发的运算符优先级和类型转换问题。 第17章“子例程和函数”解释了如何使用子例程和函数将程序分解为多个可管理的部分。同时也描述了子例程重载和作用域。另外,还介绍了lambda函数和非严格委托(这两个功能都是Visual Basic 2008中的新功能)。 第18章“程序控制语句”描述了Visual Basic程序用于控制代码执行的语句。这些语句包括判定语句(如If Then Else、Select Case、IIF和Choose等)及循环语句(如For Next、For Each、Do While、While Do和Repeat Until等)。 第19章“错误处理”解释了错误处理和调试技术。描述了Try Catch结构化错误处理程序,以及从早期版本的Visual Basic继承而来的较老的On Error语句。还讨论了程序在捕获到错误时可能执行的常见操作,并且描述了防止错误发生以及使实际发生的错误显而易见的技术。 第20章“数据库控件和对象”解释了如何使用Visual Basic的标准数据库控件。这些数据库控件包括处理数据库连接的数据库连接组件、保存应用程序数据的DataSet组件,以及将数据在数据连接和DataSet之间移动的数据适配器控件。 第21章“LINQ”讲述了语言集成查询(LINQ)功能。解释了如何编写类似于SQL的查询读写对象、XML或数据库对象。LINQ是Visual Basic 2008中的新功能。 第22章“自定义控件”介绍了如何构建自定义控件,可以在后面将这些控件用于其他应用程序中。还介绍了创建自定义控件的三种主要方法:派生、复合及从头开始构建。该章也提供了一些示例,可以将这些示例用作创建自己控件的起点。 第23章“拖动、释放和剪贴板”解释了Visual Basic程序如何支持拖放操作。说明了Visual Basic如何开始到另一个应用程序的拖动操作,如何响应由另一个应用程序开始的拖动操作,以及如何接收来自于另一个应用程序的释放操作。同时也解释了如何将数据复制到剪贴板以及如何从剪贴板中复制数据。使用剪贴板类似于执行某种类型的拖放操作,因此这些主题很自然地放在一章中进行介绍。 第24章“UAC安全功能”讲述了Vista操作系统使用的User Access安全模型。有了UAC安全功能,所有用户都以降低的“普通”用户权限运行。如果程序必须执行要求管理员权限的任务,UAC对话框就允许提升应用程序的权限级别。该章介绍了UAC安全功能,解释了如何标记程序进行权限提升。 第Ⅲ部分 面向对象编程 这一部分的章节解释使用Visual Basic进行面向对象编程(OOP)的基本概念,并且描述了一些较为重要的类和对象,可以在构建应用程序时使用这些类和对象。 第25章“OOP概念”介绍了隐藏在面向对象编程之后的基本思想。描述了OOP的三个主要特性:封装、多态和继承,解释了这些特性的优点,并且说明了如何在Visual Basic中利用它们。 第26章“类和结构体”解释了如何声明和使用类和结构体。介绍了类和结构体的概念,并且描述了它们之间的区别。还展示了基本的声明语法,并且说明了如何创建类和结构体的实例。该章也介绍了一些较为复杂的类问题(如私有类的作用域、声明事件及共享的变量和方法)。 第27章“名称空间”介绍了名称空间。说明了Visual Studio如何使用名称空间分类代码并防止名称冲突,描述了项目的根名称空间,并说明了Visual Basic如何使用名称空间解析名称(如函数名和类名),以及如何将名称空间添加到应用程序中。 第28章“集合类”解释了Visual Studio中的类,可以使用这些类保存对象组。该章描述了各种集合、字典、队列及栈类,说明了如何建立这些类的强类型版本,并且提供了关于在不同的情况下决定使用哪个类的指导。 第29章“泛型”解释了模板,可以使用模板构建新的类以操作特定的数据类型。例如,可以构建泛型二元树,在后面使用这个泛型二元树构建类,以表示顾客订单、雇员或工作项的二元树。 第Ⅳ部分 绘图 这一部分描述了Visual Basic .NET中的绘图。解释了图形设备接口(GDI+)例程,程序使用这些例程在Visual Basic中绘制图像。解释了如何绘制直线和文本,如何绘制和填充圆和其他形状,以及如何加载、操作和保存位图图像。同时也解释了如何生成打印输出以及如何将报表发送给屏幕或打印机。 第30章“绘图基础”解释了在Visual Basic .NET中绘制图形的基本原理。描述了图形名称空间及它们包含的类,详细介绍了其中最重要的类Graphics。还描述了Paint事件处理程序及其他事件,程序应该使用这些事件使图形最新。 第31章“画刷、画笔和路径”解释了除了Graphics之外最重要的图形类:Pen和Brush。说明了如何使用Pen绘制实线、虚线、带有自定义虚线样式的直线,以及带有自定义纵向条纹样式的直线。同时展示了如何使用Brush在区域中填充颜色、阴影线样式、线性渐变色、遵循路径的其他渐变色及平铺的图像。该章也描述了GraphicsPath类,该类表示一系列直线、形状、曲线和文本。 第32章“文本”解释了如何绘制文本字符串,如何创建不同类型的字体,精确地确定以特定的字体绘制大文本时该字体的外观,以及使用GDI+函数简化文本的定位。描述了如何使用StringFormat对象对文本进行排列、换行和剪裁操作,以及如何读取和定义制表位。 第33章“图像处理”解释了如何加载、修改和保存图像文件,如何读写图像中的像素,以及如何以不同的文件格式(如BMP、GIF和JPEG等)保存结果。说明了如何使用图像提供自动重绘特性,以及逐个像素地操作图像,这两个操作都使用了Bitmap的GetPixel和SetPixel方法,并且都使用了“不安全的”访问技术,这就使像素操作比使用普通的GDI+方法更为快速。 第34章“打印”介绍了程序发送输出给打印机的不同方法。展示了如何使用PrintDocument对象生成打印输出的数据,然后可以使用PrintDocument立刻打印数据,使用PrintDialog控件让用户选择打印机并设置它的特征,或者使用PrintPreviewDialog控件让用户在打印之前预览结果。 第35章“报表”简述了Crystal Reports,使用该工具可以相对容易地在Visual Basic中生成报表。该章介绍了Crystal Reports的基础知识,并且逐步介绍了构建简单报表的示例。 第Ⅴ部分 与环境交互 这一部分描述了应用程序如何与它的环境交互,程序如何在外部源(如系统注册表、资源文件和文本文件等)中保存和加载数据,如何操作计算机的屏幕、键盘和鼠标,以及如何通过标准对话框控件与用户交互。 第36章“配置和资源”描述了Visual Basic程序存储在运行时使用的配置和资源值的一些方法。其中一些最有用的方法包括环境变量、注册表、配置文件和资源文件。 第37章“流”解释了Visual Basic应用程序用于操作流数据的类,包括FileStream、MemoryStream、BufferedStream、TextReader和TextWriter等。 第38章“文件系统对象”描述了Visual Basic应用程序与文件系统交互的类,这些类包括Directory、DirectoryInfo、File和FileInfo,它们简化了创建、检查、移动、重命名,以及删除目录和文件的操作。 第39章“WCF”介绍了Windows Communication Foundation,这是使构建面向服务的应用程序更为简单的一个库和工具集。该章讲述了如何使用新的WCF特性简单定义服务、如何使用配置文件配置服务,以及如何使用WCF工具使用服务。 第40章“有用的名称空间”描述了.NET Framework定义的一些最常见的名称空间。概述了一些最重要的System名称空间,并且给出了演示正则表达式、XML、加密、反射和Direct3D的较为详细的示例。 第Ⅵ部分 附录 本书的附录提供了Visual Basic 2008语言的分类参考。通过这些附录可以快速回顾特定命令的语法、从某个例程的一些重载版本中进行选择或者重新回忆特定类可以执行的操作。本书前面的章节提供了更多的上下文,并且解释了如何执行特定的任务,以及一种方法比另一种方法更可行的原因。 附录A“有用的控件属性、方法和事件”描述了对于许多不同类型的控件非常有用的属性、方法和事件。 附录B“变量声明和数据类型”总结了声明变量的语法。该附录也给出了基本数据类型所允许值的大小和范围。 附录C“运算符”总结了标准运算符,如+、<<、Or Else和Like等。该附录也提供了运算符重载的语法。 附录D“子例程和函数声明”总结了子例程、函数和属性过程声明的语法。 附录E“控制语句”总结了控制程序流的语句,如If Then、Select Case和循环语句。 附录F“错误处理”总结了结构化和“经典的”错误处理。该附录描述了一些有用的异常类,并且提供了如何构建自定义异常类的示例。 附录G“Windows窗体控件和组件”描述了Visual Basic 2008提供的Windows窗体控件和组件。该附录解释了在操作这些组件时最有用的属性、方法和事件。 附录H“WPF控件”介绍了在构建WPF应用程序时工具箱中默认出现的控件。这是个相对简短的列表,给出了可用的控件,而不是像附录G中对标准的Windows窗体控件那样提供详细描述。 附录I“Visual Basic Power Packs”列出了一些可下载的额外工具,它们可使Visual Basic开发更为容易。该附录描述了Microsoft提供的一些Visual Basic 6兼容工具,以及一些内置在Visual Basic 3中的有用控件的GotDotNet Power Pack。 附录J“窗体对象”描述了窗体。从非常实际的意义来说,窗体是另一种类型的组件。然而,窗体在Visual Basic应用程序中扮演了关键的角色,因此值得专门通过一个附录来进行介绍。 附录K“类和结构体”总结了声明类和结构体的语法,以及定义它们的构造函数和事件的语法。 附录L“LINQ”总结了LINQ语法。 附录M“泛型”概述了声明泛型类的语法。 附录N“图形”概述了用于在Visual Basic 2008中生成图形的对象。该附录介绍了最有用的图形名称空间。 附录O“有用的异常类”列出了Visual Basic定义的一些最有用的异常类。我们可能需要在自己的代码中抛出这些异常。 附录P“日期和时间格式指示符”概述了指示符字符,可以使用它们格式化日期和时间。例如,这些字符可以以12小时时钟或24小时时钟的方式显示时间。 附录Q“其他格式指示符”概述了数字和枚举类型的格式化。 附录R“Application类”概述了Application类,该类提供了控制当前应用程序的属性和方法。 附录S“My名称空间”描述了My名称空间,该名称空间提供了遍布在.NET Framework其他部分的有用特性的快捷方式。该附录提供了操作应用程序、计算机硬件、应用程序窗体、资源和当前用户的快捷方式。 附录T“流”概述了Visual Basic的流类,如Stream、FileStream、MemoryStream、TextReader和CryptoStream等。 附录U“文件系统类”概述了应用程序可用于了解和操作文件系统的方法。该附录解释了传统的Visual Basic方法,如FreeFile、WriteLine和ChDir,以及较新的.NET Framework类,如FileSystem、Directory和File等。 附录V“示例索引”简述了可从本书的合作网站或www.tupwk.com.cn/downpage, 以及本书的作者网站上下载的435个示例程序。可以通过这一列表查看某个程序演示的特定技术。 0.4 如何使用本书 如果您是有经验的Visual Basic .NET程序员,则可以跳过本书第Ⅰ部分中介绍的语言基础。不过,您或许会发现Visual Basic 2008中的一些新特性,因此不应该完全跳过这些章节。但是,这里介绍的大多数基本语言特性都与前面版本的相同。初步了解Visual Basic 2008的程序员和对Visual Basic 2008具有较少经验的程序员应该更加仔细地阅读这些章节。 第Ⅲ部分“面向对象编程”介绍了一些特别复杂的主题。在您学习关于继承和接口的所有变体时可能会很容易产生混淆。 初学者应该花费较多的时间学习这些基础章节,因为这些章节为后面将要介绍的内容打好了基础。如果已经清楚地了解了错误处理代码的讨论,则可以较为容易地理解关于文件管理和正则表达式的讨论。 编程是一种最好通过实践来学习的技能。您可以根据喜好选择本书并快速阅读它,但是如果打开开发环境并亲自实验一些程序,则更有可能牢记本书中介绍的信息。 注意: 通常情况下,当我阅读新的编程书籍时,都会亲自完成每个示例,修改代码以查看在尝试作者没有介绍到的内容时所发生的情况。应尝试新的变体并特别注意产生的错误,但在一本书中很难全面地介绍所有的错误。了解强类型的集合是一回事,使用对您有意义的数据构建自己的强类型集合又是另一回事。 通过实践来学习这种观点可能会促使您跳过本书中的一些部分。例如,第1章详细介绍了IDE。在阅读本章一段时间后,您可能希望跳过一些部分并亲自开始体验该环境。我非常鼓励您这样做,通过实践来学习总是好于通过阅读来学习。在对该开发环境有一些经验之后,您可以回过头并更为详细地研究第1章,查看是否有遗漏的内容。 本书的最后一部分是Visual Basic 2008参考。这些附录给出了关于该语言的较为简明的分类信息。您可以使用这些附录回顾特定操作的细节。例如,可以阅读第8章以学习控件用于哪些特定的目标,然后使用附录G了解特定控件的属性、方法和事件。 在工作过程中,您也可以参考这些附录以获得关于特定的类、控件和语法的信息。例如,可以在附录M中快速查找声明泛型类的语法。如果需要关于泛型的信息,可以在第29章或联机帮助中进行查找。然而,如果只是为了重新回忆基本语法,则浏览附录M将更为快速。 0.5 必要的配备 为了阅读本书并理解其中的示例,需要一些特殊的配备。为了使用Visual Basic 2008并运行可在本书相关网页上找到的示例,您需要足以运行Visual Basic 2008的任何计算机。这意味着要有一台相当现代化的、快速的计算机,该计算机配有大量内存。可以查看Visual Basic 2008文档以了解Microsoft提出的具体需求和推荐信息。 为了构建Visual Basic 2008程序,您也需要一份Visual Basic 2008的副本。如果您有.NET之前的Visual Basic版本(如Visual Basic 6),则不要尝试运行本书中介绍的示例。Visual Basic 6和Visual Basic .NET之间的改动非常大,许多Visual Basic .NET概念并不能很好地转换为Visual Basic 6中的概念。如果对C#有一些经验,则可以较为容易地将程序转换为该语言。 注意: 您甚至可以使用免费的Visual Basic 2008 Express Edition。要了解更多信息,可访问。 然而,许多Visual Basic 2008发布版本都与Visual Basic 2005和Visual Basic .NET的早期版本兼容,因此可以在Visual Basic .NET的早期版本中使用许多示例。不过,您将不能够加载从本书的网站上下载的示例程序,而是需要将重要的代码部分复制并粘贴到您的Visual Basic版本中。 要使用UAC安全功能,必须在您的计算机上安装它。在Windows Vista操作系统中默认安装和激活了UAC。 0.6 本书支持网站 编程环境(如Visual Basic和Windows操作系统)不是静态的,因此介绍它们的书籍不应是单一的。现代编程书籍都与配套网站相结合,这些网站提供示例程序、提问和解答的论坛、纠正和变更的列表以及其他补充资料。 本书也不例外。您只有访问了本书网站,才能获得物超所值的享受。 要访问本书的Wrox网站,请浏览到并搜索本书的英文版的书名或书号,或者作者名Rod Stephens。该网站包括了作者信息、摘要、可下载的示例程序、必要的纠错和论坛。另外,您也可以通过站点www.tupwk.com.cn/downpage下载本书的所有源代码。 注意: 请访问本书网站,并下载示例程序,这样可以尝试本书中的代码。我会密切关注Wrox论坛并尽快给予回复。 本书的作者网站包含了类似资料,外加一些额外示例。主要的VB Helper网站还包含数以千计的提示、技巧和用Visual Basic各种版本编写的示例。 要获得有关本书或我的其他书籍的更改通知,可在上注册我的某个新闻通讯。这个新闻通讯(大约每周发送一次)包括了Visual Basic提示、技巧和示例,以及本书的更新信息和有关Visual Basic开发的其他内容。 如果您发现有错误或意见,可通过RodStephens@vb-helper.com将这些信息发送给我,我将尽可能及时更新。 0.7 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 请给wkservice@vip.163.com发电子邮件,我们就会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。 要在网站上找到本书英文版的勘误表,可以登录,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是/misc-pages/booklist.shtml。 0.8 要与作者和同行讨论,请加入上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。 在上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤: (1) 进入,单击Register链接。 (2) 阅读使用协议,并单击Agree按扭。 (3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按扭。 (4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 注释: 不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。 加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。 关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。 0.9 Visual Basic 2008第1版的警告 由于装载Visual Basic 2008第1版时的配置错误,在创建新的WPF项目时,结果中会包含一个错误。模板项目试图从应返回WpfApplication1.Application对象的函数中返回一个System.Windows.Application对象。错误是: Option Strict On disallows implicit conversions from System.Windows.Application to WpfApplication1.Application. 错误发生在下列代码的Return语句中: _ Friend ReadOnly Property Application() As Application Get Return Global.System.Windows.Application.Current End Get End Property 要修改这一错误,可悬停在Visual Basic显示的红色方框上,以显示Error Correction Options下拉列表。接受错误修正建议来进行修改: Return Ctype(Global.System.Windows.Application.Current, _ WpfApplication1.Application) 这个错误应在Visual Basic 2008的第一个服务补丁和后续发布中修正。 在阅读第5、11、12和13章时可了解这一问题。要了解有关此问题的更多信息,可访问。