第Ⅰ部分 IDE 3
第1章 IDE简介 3
1.1不同的IDE外观 4
1.2 IDE配置 5
1.3项目和解决方案 6
1.4启动IDE 6
1.5创建项目 7
1.6保存项目 10
1.7小结 11
第2章 菜单、工具栏和窗口 13
2.1菜单 13
2.1.1 File菜单 14
2.1.2 Edit菜单 16
2.1.3 View菜单 17
2.1.4 Project菜单 19
2.1.5 Build菜单 23
2.1.6 Debug菜单 24
2.1.7 Data菜单 24
2.1.8 Format菜单 24
2.1.9 Tools菜单 25
2.1.10 Test菜单 29
2.1.11 Window菜单 29
2.1.12 Community菜单 30
2.1.13 Help菜单 30
2.2工具栏 31
2.3辅助窗口 31
2.3.1 Toolbox窗口 32
2.3.2 Properties窗口 34
2.4小结 35
第3章 定制 37
3.1添加命令 37
3.2删除命令 38
3.3修改命令 39
3.4创建键盘快捷键 40
3.5小结 41
第4章 Windows Form Designer 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章 Visual Basic代码编辑器 59
6.1边空图标 60
6.2大纲视图 61
6.3工具提示 62
6.4 IntelliSense 63
6.5代码着色和突出显示 65
6.6代码段 67
6.6.1使用代码段 67
6.6.2创建代码段 68
6.7运行时的代码编辑器 70
6.8小结 71
第7章 调试 73
7.1 Debug菜单 73
7.2 Debug→Windows子菜单 75
7.3 Breakpoint窗口 79
7.4 Command窗口和Immediate窗口 80
7.5小结 82
第Ⅱ部分 开始学习 85
第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.2 WithEvents事件处理程序 115
9.5.3在运行时设置事件处理程序 116
9.5.4控件数组事件 117
9.5.5验证事件 117
9.6小结 122
第10章 Windows窗体 123
10.1透明性 123
10.2 About对话框、启动画面和登录窗体 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.8 SDI和MDI 133
10.8.1 MDI的功能 134
10.8.2 MDI事件 137
10.8.3 MDI与SDI的对比 138
10.9 MRU列表 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.1 WPF概念 155
12.1.1用户界面和代码分离 156
12.1.2 WPF控件层次结构 156
12.2 IDE中的WPF 157
12.2.1编辑XAML 158
12.2.2编辑Visual Basic代码 161
12.3 XAML功能 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.3 XPS文档 184
12.6小结 184
第13章 WPF窗口 187
13.1 Window应用程序 187
13.2 Page应用程序 189
13.2.1浏览器应用程序 189
13.2.2框架应用程序 191
13.2.3 PageFunction应用程序 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.2 XML注释 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.1 attribute_list 229
15.4.2 accessibility子句 229
15.4.3 Shared 230
15.4.4 Shadows 231
15.4.5 ReadOnly 233
15.4.6 Dim 233
15.4.7 WithEvents 234
15.4.8 name 236
15.4.9 bounds list 236
15.4.10 New 237
15.4.11 as子句和推断类型 238
15.4.12 initialization expression 239
15.4.13多个变量的声明 242
15.5 Option Explicit和Option Strict 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.1 accessibility 255
15.12.2 As Type 256
15.12.3 initialization_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.8 StringBuilder类 268
16.9 Date数据类型和TimeSpan操作 270
16.10运算符重载 273
16.11带可空类型的运算符 275
16.12小结 276
第17章 子例程和函数 277
17.1子例程 277
17.1.1 attribute_list 277
17.1.2 inheritance_mode 281
17.1.3 accessibility 282
17.1.4 subroutine_name 283
17.1.5 parameters 283
17.1.6 Implements interface.subroutine 289
17.1.7 statements 290
17.2函数 290
17.3属性过程 291
17.4扩展方法 292
17.5 lambda函数 293
17.6 非严格委托 294
17.7部分方法 297
17.8小结 298
第18章 程序控制语句 299
18.1判定语句 299
18.1.1单行的If Then语句 299
18.1.2多行If Then语句 300
18.1.3 Select Case语句 301
18.1.4枚举值 303
18.1.5 IIf语句 304
18.1.6 If语句 305
18.1.7 Choose语句 305
18.2循环语句 307
18.2.1 For Next循环 307
18.2.2非整数的For Next循环 309
18.2.3 For Each循环 310
18.2.4枚举器 311
18.2.5迭代器 313
18.2.6 Do Loop循环 313
18.2.7 While End循环 314
18.2.8 Exit和Continue 315
18.3 GoTo语句 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.2 StackTrace对象 327
19.2.3抛出异常 327
19.2.4自定义异常 329
19.3 Visual Basic传统错误处理 331
19.3.1 On Error GoTo line 331
19.3.2 On Error Resume Next 332
19.3.3 On Error GoTo 0 333
19.3.4 On Error GoTo-1 333
19.3.5错误处理模式 334
19.4结构化错误处理与传统错误处理 335
19.5 Err对象 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.9 DataSet 359
20.9.1 DataTable 363
20.9.2 DataRow 365
20.9.3 DataColumn 367
20.9.4 DataRelation 369
20.9.5约束 371
20.10 DataView 373
20.11 DataRowView 376
20.12简单数据绑定 377
20.13 CurrencyManager 378
20.14复杂数据绑定 380
20.15小结 383
第21章 LINQ 385
21.1 LINQ简介 386
21.2 LINQ查询的基本语法 387
21.2.1 From子句 388
21.2.2 Where子句 389
21.2.3 Order By子句 389
21.2.4 Select子句 390
21.2.5使用LINQ结果 392
21.3高级LINQ查询语法 392
21.3.1 Join关键字 393
21.3.2 Group By子句 394
21.3.3聚合函数 396
21.3.4设置操作 397
21.3.5限制结果 397
21.4 LINQ函数 398
21.5 LINQ扩展方法 399
21.5.1基于方法的查询 399
21.5.2使用lambda函数的基于方法的查询 401
21.5.3扩展LINQ 402
21.6 LINQ to Objects 405
21.7 LINQ to XML 405
21.7.1 XML字面量 405
21.7.2使用LINQ将数据移入XML对象 406
21.7.3使用LINQ将数据移出XML对象 407
21.8 LINQ to ADO.NET 410
21.8.1 LINQ to SQL和LINQ to Entities 410
21.8.2 LINQ to DataSet 411
21.9小结 413
第22章 自定义控件 415
22.1自定义控件概述 416
22.1.1创建控件项目 416
22.1.2设置工具箱图标 416
22.1.3在UserControl Test Container中测试 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.1 UAC概览 453
24.2规划UAC 454
24.3提升程序 457
24.3.1用户 457
24.3.2调用程序 457
24.3.3被调用的程序 458
24.4小结 458
第Ⅲ部分 面向对象编程 463
第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.1 attribute list 478
26.1.2 Partial 478
26.1.3 accessibility 479
26.1.4 Shadows 480
26.1.5 inheritance 480
26.1.6 Of type-list 482
26.1.7 Inherits parent_class 482
26.1.8 Implements interface 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.1 Finalize方法 495
26.5.2 Dispose方法 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.1 Imports语句 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.5 Array类的其他特性 527
28.3集合 529
28.3.1 ArrayList 529
28.3.2 StringCollection 531
28.3.3强类型的集合 531
28.3.4只读的强类型集合 533
28.3.5 NameValueCollection 533
28.4字典 534
28.4.1 ListDictionary 535
28.4.2 Hashtable 536
28.4.3 HybridDictionary 537
28.4.4 强类型的字典 537
28.4.5其他强类型的派生类 538
28.4.6 StringDictionary 539
28.4.7 SortedList 539
28.5 CollectionUtil 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
第Ⅳ部分 绘图 561
第30章 绘图基础 561
30.1绘图概述 561
30.2绘图名称空间 563
30.2.1 System.Drawing 563
30.2.2 System.Drawing.Drawing2D 565
30.2.3 System.Drawing.Imaging 566
30.2.4 System.Drawing.Text 567
30.2.5 System.Drawing.Printing 569
30.3 Graphics 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.1 Alignment 591
31.1.2 CompoundArray 592
31.1.3自定义线帽 593
31.1.4画笔变换 594
31.2笔刷 596
31.2.1 SolidBrush 597
31.2.2 TextureBrush 597
31.2.3 HatchBrush 599
31.2.4 LinearGradientBrush 599
31.2.5 PathGradientBrush 603
31.3 GraphicsPath对象 607
31.4垃圾回收问题 611
31.5小结 612
第32章 文本 615
32.1绘制文本 615
32.2文本格式化 616
32.2.1 FormatFlags 618
32.2.2制表位 621
32.2.3修剪 621
32.3 MeasureString 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.3 Metafile对象 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.1 Report对象 663
35.2构建报表 664
35.3 CrystalReportViewer 671
35.4自定义报表 672
35.5外部报表 675
35.6 ReportDocument 675
35.7小结 676
第Ⅴ部分 与环境交互 681
第36章 配置和资源 681
36.1 My名称空间 681
36.1.1 Me对象和My名称空间 682
36.1.2 My名称空间的元素 682
36.2环境 683
36.2.1设置环境变量 683
36.2.2使用Environ函数 684
36.2.3使用System.Environment 684
36.3注册表 686
36.3.1 Visual Basic自带的注册表方法 687
36.3.2 My.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.6 ComponentResourceManager 699
36.6 Application对象 701
36.6.1 Application对象的属性 701
36.6.2 Application对象的方法 702
36.6.3 Application对象的事件 704
36.7小结 705
第37章 流 707
37.1 Stream 708
37.2 FileStream 709
37.3 MemoryStream 709
37.4 BufferedStream 710
37.5 BinaryReader和BinaryWriter 710
37.6 TextReader和TextWriter 712
37.7 StringReader和StringWriter 713
37.8 StreamReader和StreamWriter 714
37.9 OpenText、 CreateText和AppendText方法 715
37.10自定义流类 716
37.11小结 716
第38章 文件系统对象 717
38.1权限 717
38.2 Visual Basic方法 717
38.2.1文件方法 718
38.2.2文件系统方法 719
38.2.3顺序文件访问 720
38.2.4随机文件访问 720
38.2.5二进制文件访问 722
38.3 .NET Framework类 722
38.3.1 Directory 723
38.3.2 File 724
38.3.3 DriveInfo 725
38.3.4 DirectoryInfo 726
38.3.5 FileInfo 727
38.3.6 FileSystemInfo 729
38.3.7 FileSystemWatcher 729
38.3.8 Path 731
38.4 My.Computer.FileSystem 732
38.5 My.Computer.FileSystem.SpecialDirectories 733
38.6小结 734
第39章WCF 737
39.1早期版本的警告 737
39.2 WCF概念 738
39.3 WCF示例 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.1 Microsoft名称空间 748
40.1.2 System名称空间 748
40.2高级示例 750
40.2.1正则表达式 750
40.2.2 XML 752
40.2.3加密 754
40.2.4反射 757
40.2.5 Direct3D 760
40.3小结 766
第Ⅵ部分 附录 769
附录A有用的控件属性、方法和事件 769
附录B变量声明和数据类型 779
附录C运算符 787
附录D子例程和函数声明 793
附录E控制语句 797
附录F错误处理 803
附录G Windows窗体控件和组件 805
附录H WPF控件 875
附录Ⅰ Visual Basic Power Packs 881
附录J窗体对象 885
附录K类和结构体 897
附录L LINQ 901
附录M泛型 909
附录N图形 913
附录O有用的异常类 923
附录P 日期和时间格式指示符 927
附录Q其他格式指示符 931
附录R Application类 935
附录S My名称空间 939
附录T流 953
附录U文件系统类 959
附录Ⅴ示例索引 973