第1章 .NET框架 1
1.1 .NET框架的基本构成 1
1.2 公共语言运行库概览 2
1.2.1 托管执行过程 3
1.2.2 反编译问题 3
1.2.3 自动内存管理 4
1.2.4 跨语言互用性 4
1.2.5 程序集 5
1.3 .NET框架类库 8
1.3.1 .NET框架类库的功能 8
1.3.2 命名空间 9
常见问题 10
第2章 移植早先版本的Visual Basic程序 12
2.1 基本数据类型 12
2.1.1 数字类型 12
2.1.2 固定长度的字符串 12
2.1.3 Variant数据类型 13
2.1.4 用户定义类型 14
2.2 变量的使用范围 15
2.3 数组 16
2.4 传值和传址 16
2.5.1 窗体文件 17
2.5 窗体 17
2.5.2 事件过程 20
2.5.3 Tab键顺序的修改 21
2.5.4 窗体的属性和方法的改变 21
2.6 常用控件及其属性、事件和方法的变化 22
2.6.1 控件的变化 22
2.6.2 属性的变化 23
2.6.3 事件的变化 24
2.6.4 方法的变化 24
2.7 默认属性 24
2.8 用户定义属性 24
2.9 动态建立控件 25
2.10 升级向导 26
2.10.1 升级向导的使用 27
2.10.2 升级向导的限制 31
常见问题 33
第3章 控制台应用程序 34
3.1 建立控制台项目 34
3.2 控制台输入/输出函数 36
3.3 命令行处理和程序的返回值 40
3.3.1 命令行处理类ArgParser 40
3.3.2 修改文件时间的Touch例子 42
常见问题 46
4.1 类的基本概念 49
第4章 面向对象 49
4.1.1 建立类 50
4.1.2 UML图 51
4.1.3 早期绑定和晚期绑定 51
4.1.4 类和命名空间 52
4.2 方法 53
4.3 字段和属性 54
4.3.1 向类添加字段 54
4.3.2 向类添加属性 54
4.3.3 默认属性 55
4.4 重载 57
4.5 类的生存周期 59
4.6 继承 60
4.6.1 Inherits语句 60
4.6.2 重写派生类中的属性和方法 61
4.6.3 虚方法 62
4.6.4 Me关键字 62
4.6.5 MyClass关键字 62
4.6.6 MyBase关键字 63
4.6.7 隐藏 64
4.7 共享成员 64
4.8 事件 66
4.8.1 事件处理程序 66
4.8.2 用WithEvents处理事件 67
4.8.3 用AddHandler处理事件 68
4.8.4 处理自基类继承的事件 69
4.9 接口 70
常见问题 72
第5章 Visual Basic.NET新特性 73
5.1 新的操作符号 73
5.2 异常和错误处理 74
5.2.1 “结构化”和“非结构化”异常处理 74
5.2.2 Try...Catch...Finally语句 75
5.2.3 Exception对象 76
5.2.4 建立自己的异常 77
5.2.5 非结构化异常处理 81
5.3 委托 83
5.3.1 EventHandler委托 83
5.3.2 Delegate类 85
5.3.3 定义和使用委托 86
5.3.4 多路广播委托 89
5.4 新的Windows控件 92
5.4.1 LinkLabel控件 92
5.4.2 CheckedLisfBox控件 95
5.4.3 DomainUpDown控件 96
5.4.4 NumericUpDown控件 96
5.4.5 Splitter控件 97
5.4.6 NotifyIcon组件 98
5.4.7 ToolTip组件 100
5.4.8 HelpProvider控件 101
5.4.9 ErrorProvider控件 101
常见问题 102
第6章 多线程 104
6.1 多线程的概念 104
6.2 建立线程 105
6.3 线程池 106
6.4 线程同步 109
6.4.1 WaitHandle对象 110
6.4.2 Mutex、ManualResetEvent和AutoResetEvent对象 111
6.4.4 Interlocked类 112
6.4.3 Monitor对象和SyncLock关键字 112
6.4.5 Timers对象 113
6.4.6 死锁问题 114
6.5 取消任务 115
常见问题 116
第7章 文件和注册表 118
7.1 文件和目录操作 118
7.1.1 Directory类 119
7.1.2 File类 123
7.1.3 DirectoryInfo类 127
7.1.5 Path类 128
7.1.4 FileInfo类 128
7.1.6 MyExplorer示例 130
7.2 文件读写 133
7.2.1 FileStream类 133
7.2.2 StreamReader类 135
7.2.3 StreamWriter类 136
7.2.4 BinaryReader类 139
7.2.5 BinaryWriter类 143
7.3 文件加密和解密 143
7.4 FileSystemWatcher部件 148
7.5 注册表 151
7.5.1 使用Visual Basic.NET函数访问注册表 152
7.5.2 使用.NET框架类访问注册表 154
常见问题 156
第8章 使用GDI+绘图 157
8.1 GDI+简介 157
8.2 显示图像文件 158
8.2.1 动态加载图像文件 159
8.2.2 加载资源文件中的图像 164
8.2.3 保存图像文件 167
8.2.4 通过剪帖板交换图像 168
8.3 绘制图形和文字 170
8.3.1 Graphics对象 171
8.3.2 Point和PointF对象 172
8.3.3 Rectangle和RectangleF对象 173
8.3.4 颜色对象 174
8.3.5 字体对象 174
8.3.6 Pen对象 175
8.3.7 Brush对象 178
8.3.8 GraphicsPath对象 180
8.3.9 Region对象 181
8.3.10 绘制图形 183
8.3.11 输出字符串 190
8.3.12 绘制图像 194
8.3.13 剪辑区域 195
8.3.14 Paint事件 197
8.3.15 梯度型画刷 200
8.4 坐标变换 204
8.4.1 坐标系 204
8.4.2 坐标变换 205
8.5 位图处理 207
常见问题 210
第9章 打印 212
9.1 三种打印方案 212
9.2 打印组件 213
9.2.1 PrintDocument组件 213
9.2.2 PrintDialog组件 214
9.2.3 PageSetupDialog组件 215
9.2.4 PrintPreviewDialog控件 216
9.2.5 PrintPreviewControl控件 217
9.3 打印机和页面属性 217
9.4 打印示例 218
9.4.1 分页打印 218
9.4.2 打印文本 221
9.4.3 打印图像和图形 223
常见问题 225
10.1 多个控件的组合 226
10.1.1 设计DualList控件 226
第10章 Windows控件 226
10.1.2 添加属性和方法 229
10.1.3 添加事件 231
10.1.4 建立测试项目 236
10.2 用户绘制控件 237
10.2.1 枚举属性 238
10.2.2 设计模式 242
10.3 从现有控件中继承 243
10.4 设置属性和事件的特性 246
10.5 扩展属性窗口的显示 251
10.5.1 嵌套属性 251
10.5.2 编辑和显示自定义类型 254
10.6 非矩形控件 257
10.7 数据绑定控件 260
10.7.1 数据绑定类型 260
10.7.2 建立数据绑定Chart控件 261
10.7.3 添加DataSource属性 261
10.7.4 IList接口 263
10.7.5 添加DisplayMember和LabelMember属性 263
10.7.6 CurrencyManager对象 264
10.7.7 增加与图形显示有关的属性 266
10.8 许可证 267
10.8.1 启用组件的授权 268
10.8.2 建立自己的许可证 269
常见问题 272
第11章 ADO.NET 273
11.1 ADO.NET的功能 273
11.1.1 数据访问手段 273
11.1.2 离线数据操作 273
11.1.3 数据库相关的集成开发环境 274
11.1.4 XML 274
11.1.5 ADO 275
11.2 ADO.NET结构 276
11.3 DataGrid控件简介 277
11.4 数据组件 277
11.4.1 数据库连接对象Connection 278
11.4.2 Command对象 281
11.4.3 DataRader对象 281
11.4.4 DataTable对象 283
11.4.5 DataView对象 284
11.4.6 DataSet对象 285
11.4.7 DataAdapter对象 285
11.4.8 DataRelation对象 286
11.5 数据更新 288
11.6 ODBC.NET 289
11.6.1 安装 290
11.6.2 连接 291
常见问题 293
第12章 DataGrid控件的高级应用 294
12.1 各种数据源 294
12.1.1 数组 294
12.1.2 DataView 296
12.1.3 IList和IListSource 298
12.2 设置网格的格式 298
12.3 表样式 299
12.4 列样式 302
12.5 在网格中添加子控件 304
12.6 自定义分页 313
12.7 验证输入 318
12.8 两个DataGrid控件实现父子记录显示 320
12.9 CurrencyManager对象 322
常见问题 324
第13章 Web窗体 325
13.1 可视化编程 325
13.2 服务器控件 327
13.3 数据绑定 328
常见问题 330
第14章 XML 331
14.1 XML初步 331
14.2 Visual Studio.NET的XML设计器 332
14.3 将现有XML数据文件导入ADO.NET 333
14.4 其他ADO.NET支持XML的函数 336
常见问题 337
第15章 XML Web服务 338
15.1 关键概念 338
15.2 XML Web服务的实现过程 338
15.3 创建XML Web服务 339
15.4 使用XML Web服务 342
15.4.1 在Web窗体程序中调用Web服务 342
15.4.2 在Windows窗体程序中调用Web服务 343
常见问题 344
16.1 Windows服务程序简介 345
第16章 Windows服务程序 345
16.2 服务开发过程 346
16.3 建立Windows服务程序 347
16.4 安装和卸载服务 349
16.4.1 安装服务 349
16.4.2 启动和停止服务 351
16.4.3 卸载服务 352
16.4.4 使用NET命令 352
16.4.5 设置启动方式 352
16.5 日志文件 352
16.6 调试服务程序 354
16.7 控制服务程序 355
常见问题 358
第17章 Internet编程 359
17.1 Internet编程的基本知识 359
17.1.1 TCP/IP 359
17.1.2 UDP 359
17.1.3 套接字 360
17.1.4 协议和RFC标准 360
17.2 WebClient类 362
17.2.1 下载数据 362
17.2.2 GET方式查询 364
17.2.3 发送数据 368
17.3 WebRequest类 370
17.4 WebBrowser控件 372
17.4.1 POST请求 373
17.4.2 控制新建窗口 375
17.4.3 处理HTML文档的事件 377
17.4.4 改变文本大小 380
17.4.5 打印 383
17.4.6 获得按钮和菜单的状态信息 384
17.4.7 添加到收藏夹 386
17.4.8 浏览Office文件 386
17.5 FTP编程 389
17.6 DNS编程 395
17.7 使用POP3协议接收邮件 397
17.8 使用SMTP协议发送电子邮件 400
17.8.1 SmtpMail类 400
17.8.2 SMTP认证 403
常见问题 407
第18章 Crystal Reports.NET 408
18.1 建立报表 408
18.1.1 添加报表文件 408
18.1.2 报表节 409
18.1.3 插入字段 412
18.2 使用CrystalReportViewer控件浏览报表 416
18.2.2 切换工具栏的显示 417
18.2.1 切换组树的显示 417
18.2.3 动态指定ReportSource 418
18.2.4 设置数据库信息 419
18.3 使用公式 421
18.3.1 将公式插入到报表中 421
18.3.2 Basic语法基础 422
18.3.3 Crystal语法基础 423
18.3.4 条件统计 424
18.3.5 每页总计 425
18.3.6 选定公式 426
18.4 Crystal Report引擎 426
18.4.2 导出文件 427
18.4.1 打印报表 427
18.5 XML报表Web服务 429
常见问题 431
第19章 Office应用程序 433
19.1 Word 433
19.1.1 操作文档 435
19.1.2 拼写检查 441
19.2 Excel 444
19.2.1 Range对象 446
19.2.2 打印报表 448
常见问题 450
20.1 生成配置 452
第20章 安装应用程序 452
20.2 安装程序的基本步骤 453
20.3 建立安装项目 454
20.4 定制安装选项 459
20.4.1 设置注册表 459
20.4.2 建立文件关联 460
20.4.3 显示附加的对话框 461
20.4.4 指定启动条件 462
20.4.5 添加自定义的操作 463
20.5 .NET框架和MDAC的分发 463
20.5.1 .NET框架的分发 463
20.6 分发Crystal Reports 467
20.5.2 Microsoft Data Access Components的分发 467
20.7 分发Web应用程序 468
常见问题 470
第21章 Windows API调用 471
21.1 使用Declare语句声明windows API函数 471
21.2 使用API文本浏览器 476
21.3 使用DllImport类声明API函数 477
21.4 利用API函数实现自动完成功能 479
21.5 传递字符串类型 483
21.6 传递用户自定义类型 484
21.7 传递数组类型 486
21.8 传递指针类型 488
21.9 函数指针 492
21.10 使用Visual C++编写标准的DLL 495
21.10.1 建立Win32 DLL项目 495
21.10.2 编写导出函数 496
21.10.3 使用stdcall约定 501
21.10.4 各种类型参数的处理 502
21.10.5 DLL的调试 512
21.11 使用API函数进行文件操作 513
常见问题 518
第22章 Visual Studio宏和外接程序 519
22.1 Visual Studio宏功能 519
22.2 创建Visual Studio外接程序 520
22.3 外接程序向导 521
22.4 实现IDTExtensibility2接口 528
22.5 实现IDTCommandTarget接口 528
22.6 注册外接程序 529
22.7 完成外接程序 530
常见问题 531
附录A 配套光盘使用说明 533
附录B 有关Visual Basic.NET的网络资源 534
B.1 微软站点与Visual Basic.NET技术相关的内容 534
B.2 Crystal Reports.NET的技术支持站点 535
B.3 .NET相关站点 536