Visual Basic 2008编程参考手册

2009年清华大学出版社出版的图书
《Visual Basic 2008编程参考手册》是2009年9月4日清华大学出版社出版的图书，作者是（美）斯蒂芬斯（Stephens R.），译者是徐燕华。
内容简介
本版对上一版进行了大量的扩充，新增了有关WPF、LINQ、UAC安全、WCF等方面的内容。书中的基础部分几乎涵盖了Visual Basic 2008所有大大小小的知识点。提高部分则从面向对象编程、使用图形及与环境交互等方面阐述了Visual Basic 2008编程的实质性内容，其中提供了大量的示例代码，这不仅可以提高读者的编程技能，而且能使读者掌握大量的编程技巧，领悟编程精髓。附录部分提供了Visual Basic2008语言的参考，以便读者随时查找有用的信息。
淋漓尽致地展现了作者对VB最新版的基本主题广泛而扎实的理解。本书阐释了在现代Windows 环境中构建VB应用程序时所使用的窗体、控件和其他对象，分析了使VB成为多功能语言的
图书目录
第Ⅰ部分IDE
第1章IDE简介 3
1.1不同的IDE外观 4
1.2IDE配置 5
1.3项目和解决方案 6
1.4启动IDE 6
1.5创建项目 7
1.6保存项目 10
1.7小结 11
第2章菜单、工具栏和窗口 13
2.1菜单 13
2.1.1File菜单 14
2.1.2Edit菜单 16
2.1.3View菜单 17
2.1.4Project菜单 19
2.1.5Build菜单 23
2.1.6Debug菜单 24
2.1.7Data菜单 24
2.1.8Format菜单 24
2.1.9Tools菜单 25
2.1.10Test菜单 29
2.1.11Window菜单 29
2.1.12Community菜单 30
2.1.13Help菜单 30
2.2工具栏 31
2.3辅助窗口 31
2.3.1Toolbox窗口 32
2.3.2Properties窗口 34
2.4小结 35
第3章定制 37
3.1添加命令 37
3.2删除命令 38
3.3修改命令 39
3.4创建键盘快捷键 40
3.5小结 41
第4章WindowsFormDesigner 43
4.1设置设计器的选项 43
4.2添加控件 44
4.3选择控件 45
4.4复制控件 45
4.5控件的移动和大小设置 46
4.6安排控件 46
4.7设置属性 47
4.7.1设置组属性 47
4.7.2设置几个控件的属性 47
4.7.3使用智能标记 48
4.7.4使用命令动词 48
4.8给控件添加代码 49
4.9小结 50
第5章WPF设计器 51
5.1早期版本的警告 51
5.2设计器窗口 52
5.3添加控件 53
5.4选择控件 54
5.5复制控件 55
5.6控件的移动和大小设置 55
5.7设置属性 56
5.8设置组属性 57
5.9给控件添加代码 57
5.10小结 58
第6章VisualBasic代码编辑器 59
6.1边空图标 60
6.2大纲视图 61
6.3工具提示 62
6.4IntelliSense 63
6.5代码着色和突出显示 65
6.6代码段 67
6.6.1使用代码段 67
6.6.2创建代码段 68
6.7运行时的代码编辑器 70
6.8小结 71
第7章调试 73
7.1Debug菜单 73
7.2Debug→Windows子菜单 75
7.3Breakpoint窗口 79
7.4Command窗口和Immediate
窗口 80
7.5小结 82
第Ⅱ部分开始学习
第8章选择Windows窗体控件 85
8.1控件概述 85
8.2选择控件 89
8.2.1包含控件和安排控件 89
8.2.2进行选择 91
8.2.3输入数据 92
8.2.4显示数据 92
8.2.5提供反馈 93
8.2.6初始化动作 94
8.2.7显示图形 95
8.2.8显示对话框 95
8.2.9支持其他控件 96
8.3第三方控件 96
8.4小结 97
第9章使用Windows窗体控件 99
9.1控件和组件 99
9.2创建控件 100
9.2.1在设计时创建控件 101
9.2.2添加控件到容器 101
9.2.3在运行时创建控件 102
9.3属性 104
9.3.1设计时的属性 104
9.3.2运行时的属性 108
9.3.3有用的控件属性 109
9.3.4位置和尺寸属性 112
9.4方法 113
9.5事件 114
9.5.1在设计时创建事件处理程序 114
9.5.2WithEvents事件处理程序 115
9.5.3在运行时设置事件处理程序 116
9.5.4控件数组事件 117
9.5.5验证事件 117
9.6小结 122
第10章Windows窗体 123
10.1透明性 123
10.2About对话框、启动画面和
登录窗体 126
10.3鼠标光标 127
10.4图标 129
10.4.1应用程序图标 130
10.4.2通知图标 130
10.5子控件采用的属性 131
10.6属性复位方法 132
10.7重写WndProc 132
10.8SDI和MDI 133
10.8.1MDI的功能 134
10.8.2MDI事件 137
10.8.3MDI与SDI的对比 138
10.9MRU列表 139
10.10对话框 141
10.11向导 143
10.12小结 144
第11章选择WPF控件 145
11.1控件概述 146
11.2包含和安排控件 146
11.3选择控件 148
11.4输入数据 148
11.5显示数据 149
11.6提供反馈 149
11.7执行动作 150
11.8表示图形和媒体 151
11.9提供导航 152
11.10管理文档 152
11.11数字墨水 152
11.12小结 153
第12章使用WPF控件 155
12.1WPF概念 155
12.1.1用户界面和代码分离 156
12.1.2WPF控件层次结构 156
12.2IDE中的WPF 157
12.2.1编辑XAML 158
12.2.2编辑VisualBasic代码 161
12.3XAML功能 163
12.3.1对象 164
12.3.2资源 166
12.3.3样式 167
12.3.4模板 168
12.3.5变换 170
12.3.6动画 171
12.3.7绘图对象 173
12.4过程化WPF 177
12.5文档 181
12.5.1流文档 182
12.5.2固定文档 183
12.5.3XPS文档 184
12.6小结 184
第13章WPF窗口 187
13.1Window应用程序 187
13.2Page应用程序 189
13.2.1浏览器应用程序 189
13.2.2框架应用程序 191
13.2.3PageFunction应用程序 192
13.2.4向导应用程序 194
13.3小结 198
第14章程序和模块结构 199
14.1隐藏文件 199
14.2代码文件结构 203
14.2.1代码区域 204
14.2.2条件编译 205
14.2.3名称空间 211
14.3印刷代码元素 213
14.3.1注释 213
14.3.2XML注释 214
14.3.3续行 217
14.3.4行连接 218
14.3.5行标签 218
14.4小结 218
第15章数据类型、变量和常量 221
15.1数据类型 222
15.2类型字符 223
15.3数据类型转换 225
15.3.1收缩转换 226
15.3.2数据类型解析方法 228
15.3.3扩大转换 228
15.4变量声明 228
15.4.1attribute_list 229
15.4.2accessibility子句 229
15.4.3Shared 230
15.4.4Shadows 231
15.4.5ReadOnly 233
15.4.6Dim 233
15.4.7WithEvents 234
15.4.8name 236
15.4.9bounds_list 236
15.4.10New 237
15.4.11as子句和推断类型 238
15.4.12initialization_expression 239
15.4.13多个变量的声明 242
15.5OptionExplicit和
OptionStrict 243
15.6作用域 245
15.6.1块作用域 245
15.6.2过程作用域 246
15.6.3模块作用域 246
15.6.4名称空间作用域 247
15.6.5限制作用域 247
15.7参数声明 248
15.8属性过程 250
15.9枚举数据类型 251
15.10匿名类型 253
15.11可空类型 254
15.12常量 255
15.12.1accessibility 255
15.12.2AsType 256
15.12.3initialization_expression 256
15.13委托 256
15.14命名约定 258
15.15小结 259
第16章运算符 261
16.1算术运算符261
16.2连接运算符 262
16.3比较运算符262
16.4逻辑运算符 264
16.5按位运算符 266
16.6运算符优先级 266
16.7赋值运算符267
16.8StringBuilder类 268
16.9Date数据类型和TimeSpan
操作 270
16.10运算符重载273
16.11带可空类型的运算符 275
16.12小结 276
第17章子例程和函数 277
17.1子例程 277
17.1.1attribute_list 277
17.1.2inheritance_mode 281
17.1.3accessibility 282
17.1.4subroutine_name 283
17.1.5parameters 283
17.1.6Implements
interface.subroutine 289
17.1.7statements 290
17.2函数 290
17.3属性过程 291
17.4扩展方法 292
17.5lambda函数 293
17.6非严格委托 294
17.7部分方法 297
17.8小结 298
第18章程序控制语句 299
18.1判定语句 299
18.1.1单行的IfThen语句 299
18.1.2多行IfThen语句 300
18.1.3SelectCase语句 301
18.1.4枚举值 303
18.1.5IIf语句 304
18.1.6If语句 305
18.1.7Choose语句 305
18.2循环语句 307
18.2.1ForNext循环 307
18.2.2非整数的ForNext循环 309
18.2.3ForEach循环 310
18.2.4枚举器 311
18.2.5迭代器 313
18.2.6DoLoop循环 313
18.2.7WhileEnd循环 314
18.2.8Exit和Continue 315
18.3GoTo语句315
18.4小结 318
第19章错误处理 319
19.1故障与计划之外的情况 319
19.1.1捕获故障 320
19.1.2捕获预料之外的情况 321
19.1.3全局异常处理 323
19.2结构化的错误处理 324
19.2.1异常对象 326
19.2.2StackTrace对象 327
19.2.3抛出异常 327
19.2.4自定义异常 329
19.3VisualBasic传统错误处理 331
19.3.1OnErrorGoToline 331
19.3.2OnErrorResumeNext 332
19.3.3OnErrorGoTo0 333
19.3.4OnErrorGoTo-1 333
19.3.5错误处理模式 334
19.4结构化错误处理与传统
错误处理 335
19.5Err对象 336
19.6调试 338
19.7小结 338
第20章数据库控件和对象 339
20.1自动数据连接 339
20.1.1连接数据源 339
20.1.2添加数据控件到窗体 342
20.2自动创建的对象 346
20.3其他数据对象 347
20.4数据概述 348
20.5连接对象 349
20.6事务对象 352
20.7数据适配器354
20.8命令对象 358
20.9DataSet 359
20.9.1DataTable 363
20.9.2DataRow 365
20.9.3DataColumn 367
20.9.4DataRelation 369
20.9.5约束 371
20.10DataView 373
20.11DataRowView 376
20.12简单数据绑定 377
20.13CurrencyManager 378
20.14复杂数据绑定 380
20.15小结 383
第21章LINQ 385
21.1LINQ简介 386
21.2LINQ查询的基本语法 387
21.2.1From子句 388
21.2.2Where子句 389
21.2.3OrderBy子句 389
21.2.4Select子句 390
21.2.5使用LINQ结果 392
21.3高级LINQ查询语法 392
21.3.1Join关键字 393
21.3.2GroupBy子句 394
21.3.3聚合函数 396
21.3.4设置操作 397
21.3.5限制结果 397
21.4LINQ函数 398
21.5LINQ扩展方法 399
21.5.1基于方法的查询 399
21.5.2使用lambda函数的基于方法的查询 401
21.5.3扩展LINQ 402
21.6LINQtoObjects 405
21.7LINQtoXML 405
21.7.1XML字面量 405
21.7.2使用LINQ将数据移入XML对象 406
21.7.3使用LINQ将数据移出XML对象 407
21.8LINQtoADO.NET 410
21.8.1LINQtoSQL和LINQtoEntities 410
21.8.2LINQtoDataSet 411
21.9小结 413
第22章自定义控件415
22.1自定义控件概述 416
22.1.1创建控件项目 416
22.1.2设置工具箱图标 416
22.1.3在UserControlTestContainer中测试 417
22.1.4建立测试项目 418
22.1.5测试控件 419
22.1.6实现属性、方法和事件 419
22.1.7分配特性 420
22.1.8管理设计时和运行时 422
22.2派生的控件 422
22.2.1遮蔽父特性 424
22.2.2隐藏父特性 425
22.3复合控件 426
22.4从头开始构建控件 428
22.5组件 429
22.6不可见的控件 429
22.7选择控件类 430
22.8可执行项目中的控件和组件 431
22.8.1可执行项目中的UserControl 431
22.8.2可执行项目中的继承的UserControl 431
22.8.3可执行项目中的控件 432
22.8.4可执行项目中的继承控件 432
22.8.5可执行项目中的组件 432
22.9自定义组件安全性 433
22.9.1强命名程序集 433
22.9.2使用签名权威机构 435
22.10小结 435
第23章拖动、释放和剪贴板 437
23.1拖放事件 438
23.1.1简单示例 439
23.1.2学习可用的数据类型 441
23.1.3在应用程序中拖动 441
23.1.4接受释放的文件 442
23.1.5拖动对象 443
23.1.6改变格式名称 445
23.1.7拖动多种数据格式 446
23.2使用剪贴板 448
23.3小结 451
第24章UAC安全功能 453
24.1UAC概览 453
24.2规划UAC 454
24.3提升程序 457
24.3.1用户 457
24.3.2调用程序 457
24.3.3被调用的程序 458
24.4小结 458
第Ⅲ部分面向对象编程
第25章OOP概念 463
25.1类 463
25.2封装 465
25.3继承 466
25.3.1继承的层次结构 467
25.3.2细化和抽象 468
25.3.3“有一个(has-a)”和“是一个
(is-a)”关系 469
25.3.4添加和修改类特性 470
25.3.5接口继承 472
25.4多态 472
25.5重载 473
25.6扩展方法 475
25.7小结 475
第26章类和结构体 477
26.1类 477
26.1.1attribute_list 478
26.1.2Partial 478
26.1.3accessibility 479
26.1.4Shadows 480
26.1.5inheritance 480
26.1.6Oftype_list 482
26.1.7Inheritsparent_class 482
26.1.8Implementsinterface 483
26.2结构体 486
26.2.1结构体不可以继承 486
26.2.2结构体是值类型 486
26.2.3所需的内存 487
26.2.4堆和栈的性能 488
26.2.5对象赋值 488
26.2.6参数传递 489
26.2.7装箱(boxing)和
拆箱(unboxing) 490
26.3类实例化的相关细节 491
26.4结构体实例化的相关细节 493
26.5垃圾回收 495
26.5.1Finalize方法 495
26.5.2Dispose方法 497
26.6常量、属性和方法 499
26.7事件 500
26.7.1声明事件 500
26.7.2引发事件 502
26.7.3捕获事件 502
26.7.4声明自定义事件 504
26.7.5共享的变量 507
26.7.6共享的方法 508
26.8小结 510
第27章名称空间 511
27.1Imports语句 511
27.1.1自动导入 513
27.1.2名称空间别名 514
27.1.3名称空间元素 515
27.2根名称空间 515
27.3建立名称空间 515
27.4类、结构体和模块 517
27.5解析名称空间 518
27.6小结 521
第28章集合类 523
28.1集合的定义 523
28.2数组 524
28.2.1数组的维 525
28.2.2下界 525
28.2.3调整大小 526
28.2.4速度 526
28.2.5Array类的其他特性 527
28.3集合 529
28.3.1ArrayList 529
28.3.2StringCollection 531
28.3.3强类型的集合 531
28.3.4只读的强类型集合 533
28.3.5NameValueCollection 533
28.4字典 534
28.4.1ListDictionary 535
28.4.2Hashtable 536
28.4.3HybridDictionary 537
28.4.4强类型的字典 537
28.4.5其他强类型的派生类 538
28.4.6StringDictionary 539
28.4.7SortedList 539
28.5CollectionUtil 539
28.6栈和队列 540
28.6.1栈 540
28.6.2队列 542
28.7泛型 543
28.8小结 544
第29章泛型 547
29.1泛型的优点 547
29.2定义泛型 548
29.2.1泛型构造函数 550
29.2.2多类型 550
29.2.3约束类型 552
29.3使用泛型 553
29.3.1导入别名 554
29.3.2继承类 554
29.4预定义泛型类 555
29.5泛型方法 555
29.6泛型和扩展方法 556
29.7小结 557
第Ⅳ部分绘图
第30章绘图基础 561
30.1绘图概述 561
30.2绘图名称空间 563
30.2.1System.Drawing 563
30.2.2System.Drawing.Drawing2D 565
30.2.3System.Drawing.Imaging 566
30.2.4System.Drawing.Text 567
30.2.5System.Drawing.Printing 569
30.3Graphics 570
30.3.1绘图方法 570
30.3.2填充方法 574
30.3.3其他图形属性和方法 575
30.3.4抗锯齿 577
30.3.5变换基础 578
30.3.6高级变换 582
30.3.7保存和恢复图形状态 585
30.4绘图事件 586
30.5小结 588
第31章笔刷、画笔和路径 589
31.1画笔 589
31.1.1Alignment 591
31.1.2CompoundArray 592
31.1.3自定义线帽 593
31.1.4画笔变换 594
31.2笔刷 596
31.2.1SolidBrush 597
31.2.2TextureBrush 597
31.2.3HatchBrush 599
31.2.4LinearGradientBrush 599
31.2.5PathGradientBrush 603
31.3GraphicsPath对象 607
31.4垃圾回收问题 611
31.5小结 612
第32章文本 615
32.1绘制文本 615
32.2文本格式化 616
32.2.1FormatFlags 618
32.2.2制表位 621
32.2.3修剪 621
32.3MeasureString 622
32.4字体度量标准 625
32.5小结 628
第33章图像处理 631
33.1图像 631
33.2位图 633
33.2.1加载位图 633
33.2.2保存位图 634
33.2.3实现AutoRedraw 635
33.2.4像素级操作 637
33.3Metafile对象 641
33.4小结 643
第34章打印 645
34.1打印注意事项 645
34.2基本打印 646
34.3打印文本 650
34.4打印输出居中 655
34.5缩放图片至页面的大小 657
34.6简化绘图和打印 658
34.7小结 661
第35章报表 663
35.1Report对象 663
35.2构建报表 664
35.3CrystalReportViewer 671
35.4自定义报表 672
35.5外部报表 675
35.6ReportDocument 675
35.7小结 676
第Ⅴ部分与环境交互
第36章配置和资源 681
36.1My名称空间 681
36.1.1Me对象和My名称空间 682
36.1.2My名称空间的元素 682
36.2环境 683
36.2.1设置环境变量 683
36.2.2使用Environ函数 684
36.2.3使用System.Environment 684
36.3注册表 686
36.3.1VisualBasic自带的注册表
方法 687
36.3.2My.Computer.Registry 688
36.4配置文件 690
36.5资源文件 694
36.5.1应用程序资源 694
36.5.2使用应用程序资源 694
36.5.3嵌入式资源 695
36.5.4卫星资源 696
36.5.5本地化资源 698
36.5.6ComponentResourceManager 699
36.6Application对象 701
36.6.1Application对象的属性 701
36.6.2Application对象的方法 702
36.6.3Application对象的事件 704
36.7小结 705
第37章流 707
37.1Stream 708
37.2FileStream 709
37.3MemoryStream 709
37.4BufferedStream 710
37.5BinaryReader和
BinaryWriter 710
37.6TextReader和TextWriter 712
37.7StringReader和StringWriter 713
37.8StreamReader和
StreamWriter 714
37.9OpenText、CreateText和
AppendText方法 715
37.10自定义流类 716
37.11小结 716
第38章文件系统对象 717
38.1权限 717
38.2VisualBasic方法 717
38.2.1文件方法 718
38.2.2文件系统方法 719
38.2.3顺序文件访问 720
38.2.4随机文件访问 720
38.2.5二进制文件访问 722
38.3.NETFramework类 722
38.3.1Directory 723
38.3.2File 724
38.3.3DriveInfo 725
38.3.4DirectoryInfo 726
38.3.5FileInfo 727
38.3.6FileSystemInfo 729
38.3.7FileSystemWatcher 729
38.3.8Path 731
38.4My.Computer.FileSystem 732
38.5My.Computer.FileSystem.
SpecialDirectories 733
38.6小结 734
第39章WCF 737
39.1早期版本的警告 737
39.2WCF概念 738
39.3WCF示例 738
39.4构建初始服务 739
39.5构建QuoteService 741
39.6测试QuoteService 743
39.7构建QuoteClient 744
39.8托管服务 744
39.9小结 746
第40章有用的名称空间 747
40.1高级名称空间 747
40.1.1Microsoft名称空间 748
40.1.2System名称空间 748
40.2高级示例 750
40.2.1正则表达式 750
40.2.2XML 752
40.2.3加密 754
40.2.4反射 757
40.2.5Direct3D 760
40.3小结 766
第Ⅵ部分附录
附录A有用的控件属性、方法和
事件 769
附录B变量声明和数据类型 779
附录C运算符 787
附录D子例程和函数声明 793
附录E控制语句 797
附录F错误处理 803
附录GWindows窗体控件和组件 805
附录HWPF控件 875
附录IVisualBasicPowerPacks 881
附录J窗体对象 885
附录K类和结构体 897
附录LLINQ 901
附录M泛型 909
附录N图形 913
附录O有用的异常类 923
附录P日期和时间格式指示符 927
附录Q其他格式指示符 931
附录RApplication类 935
附录SMy名称空间 939
附录T流 953
附录U文件系统类 959
附录V示例索引 973