Visual Basic .NET提供了大量的工具和语言方面的功能。当然,不可能用一本书包含Visual Basic .NET的所有内容,这些内容要用一个书库来容纳。本书的目的是让您尽快入门,它相当于一个路标,可以指导您的学习。在介绍完创建应用程序的基础知识后(如创建窗口和对话框,如何用代码处理突发事件,什么是面向对象的程序设计,以及如何在应用程序中使用它等)。
第1章 初识Visual Basic .NET 1
1.1 Windows和DOS编程 1
1.2 安装Visual Basic .NET 3
1.3 Visual Basic .NET集成开发环境 7
1.3.1 配置文件设置页 7
1.3.2 Projects选项卡 7
1.3.3 菜单 8
1.3.4 工具栏 9
1.4 创建简单的应用程序 10
1.4.1 Visual Studio .NET集成开发环境中的窗口 12
1.4.2 工具箱 14
1.4.3 改进型匈牙利表示法 17
1.4.4 代码编辑器 18
1.5 使用帮助系统 21
1.6 小结 23
1.7 练习 23
第2章 Microsoft .NET Framework 24
2.1 Microsoft的信心来自于Windows 24
2.1.1 MSN 1.0 25
2.1.2 .NET理念 25
2.1.3 .NET与Java有些类似 26
2.1.4 现在所处的阶段 27
2.2 为Windows编写软件 27
2.2.1 .NET Framework类 28
2.2.2 执行代码 29
2.3 公共语言运行库 30
2.3.1 载入并执行代码 31
2.3.2 应用程序隔离 31
2.3.3 安全性 31
2.3.4 互操作 32
2.3.5 异常处理 32
2.4 通用类型系统和公共语言规范 32
2.5 小结 33
2.6 练习 33
第3章 编写软件 34
3.1 信息和数据 34
3.1.1 算法 34
3.1.2 编程语言 35
3.2 变量 36
3.3 注释和空白 38
3.3.1 注释 38
3.3.2 空白 39
3.4 数据类型 39
3.4.1 使用数字 39
3.4.2 使用字符串 45
3.4.3 使用日期 52
3.4.4 布尔型 58
3.5 存储变量 58
3.5.1 二进制 59
3.5.2 位和字节 59
3.5.3 值的表示 60
3.5.4 值的转换 61
3.6 方法 63
3.6.1 使用方法的原因 63
3.6.2 创建方法 67
3.6.3 选择方法名称 69
3.6.4 作用域 70
3.7 小结 72
3.8 练习 72
第4章 流程控制 73
4.1 做出决策 73
4.2 If语句 73
4.2.1 Else语句 75
4.2.2 可进行多重选择的ElseIf语句 76
4.2.3 嵌套的If语句 77
4.2.4 单行If语句 78
4.2.5 比较运算符 78
4.2.6 字符串比较 86
4.3 Select Case语句 87
4.3.1 使用Select Case语句 88
4.3.2 不区分大小写的Select Case语句 91
4.3.3 多重选择 93
4.3.4 Case Else语句 95
4.3.5 Select Case中的不同数据类型 96
4.4 循环 96
4.4.1 For…Next 循环 96
4.4.2 For Each…Next循环 100
4.4.3 Do…Loop循环 101
4.4.4 嵌套循环 107
4.4.5 提前退出循环 108
4.4.6 死循环 110
4.5 小结 111
4.6 练习 111
第5章 处理数据结构 112
5.1 数组 112
5.1.1 定义和使用数组 112
5.1.2 用值初始化数组 120
5.2 枚举 121
5.2.1 使用枚举 121
5.2.2 确定状态 124
5.2.3 设置无效值 127
5.3 常量 127
5.3.1 使用常量 128
5.3.2 改变常量 129
5.3.3 各种常量类型 130
5.4 结构 130
5.4.1 创建结构 130
5.4.2 为结构添加属性 133
5.5 集合和列表 133
5.5.1 使用数组列表 134
5.5.2 从数组列表中进行删除操作 137
5.5.3 显示数组列表中的项 140
5.5.4 集合 141
5.6 用散列表创建查询表 144
5.6.1 使用散列表 145
5.6.2 Remove. RemoveAt和Clear方法 148
5.6.3 区分大小写 150
5.7 高级数组操作 152
5.8 小结 154
5.9 练习 155
第6章 构建Windows应用程序 156
6.1 响应事件 156
6.2 创建简单的应用程序 160
6.2.1 构建窗体 160
6.2.2 统计字符 162
6.2.3 统计单词 163
6.2.4 Show Me! 按钮 167
6.3 创建复杂的应用程序 167
6.3.1 文本操纵项目 168
6.3.2 创建状态栏 169
6.3.3 创建工具栏 170
6.3.4 给工具栏添加图像 172
6.3.5 创建编辑框 174
6.3.6 清除编辑框 175
6.3.7 响应工具栏 177
6.3.8 对Red按钮编码 178
6.3.9 对Blue按钮编码 180
6.3.10 为Uppercase和Lowercase按钮编码 180
6.3.11 焦点 182
6.4 使用多个窗体 184
6.4.1 About框 184
6.4.2 部署Wrox Text Editor 187
6.5 小结 191
6.6 练习 191
第7章 显示对话框 193
7.1 MessageBox对话框 193
7.1.1 MessageBox中的可用图标 194
7.1.2 MessageBox中的可用按钮 194
7.1.3 设置默认按钮 195
7.1.4 其他选项 195
7.1.5 Show方法的语法 195
7.1.6 MessageBox的示例 197
7.2 Open对话框 201
7.2.1 OpenFileDialog控件 201
7.2.2 StreamReader类 203
7.2.3 使用OpenFileDialog控件 204
7.3 SaveFileDialog控件 207
7.3.1 SaveFileDialog的属性 208
7.3.2 SaveFileDialog的方法 208
7.3.3 StreamWriter类 208
7.3.4 使用SaveFileDialog控件 209
7.4 FontDialog控件 212
7.4.1 FontDialog的属性 212
7.4.2 FontDialog的方法 213
7.4.3 使用FontDialog控件 213
7.5 ColorDialog控件 215
7.5.1 ColorDialog的属性 216
7.5.2 使用ColorDialog控件 217
7.6 PrintDialog控件 218
7.6.1 PrintDialog的属性 219
7.6.2 使用PrintDialog控件 219
7.7 小结 226
7.8 练习 227
第8章 创建菜单 228
8.1 概述 228
8.1.1 访问键 228
8.1.2 快捷键 228
8.1.3 复选标记和单选标记 228
8.1.4 属性窗口 229
8.2 创建菜单 230
8.2.1 设计菜单 230
8.2.2 添加工具栏和控件 232
8.2.3 为菜单编写代码 236
8.2.4 为View菜单和工具栏编码 240
8.2.5 测试代码 242
8.3 关联菜单 245
8.4 小结 252
8.5 练习 253
第9章 调试和错误处理 254
9.1 主要错误类型 254
9.1.1 语法错误 255
9.1.2 执行错误 257
9.1.3 逻辑错误 257
9.2 调试 258
9.2.1 创建示例项目 258
9.2.2 设置断点 262
9.2.3 使用命令窗口进行调试 269
9.2.4 使用监视窗口进行调试 270
9.2.5 使用局部窗口进行调试 272
9.3 错误处理 273
9.4 小结 279
9.5 练习 279
第10章 构建对象 280
10.1 对象的概念 280
10.1.1 封装 281
10.1.2 方法和属性 281
10.1.3 事件 282
10.1.4 可见性 282
10.1.5 类的概念 283
10.2 构建类 283
10.3 复用性 284
10.4 第一个对象 285
10.4.1 状态 286
10.4.2 行为 286
10.4.3 存储状态 286
10.4.4 属性 289
10.4.5 IsMoving方法 295
10.5 构造函数 297
10.6 继承 299
10.6.1 添加新方法和属性 299
10.6.2 改变默认值 303
10.6.3 多态性 305
10.6.4 重写更多的方法 306
10.6.5 从对象中继承 308
10.7 Framework类 309
10.7.1 命名空间 309
10.7.2 Framework中的继承 313
10.8 小结 314
10.9 练习 314
第11章 高级面向对象技术 315
11.1 构建收藏页浏览程序 315
11.1.1 Internet快捷方式和收藏页 315
11.1.2 使用类 317
11.1.3 搜索收藏页 321
11.1.4 查看收藏页 328
11.2 另一个收藏页浏览程序 334
11.3 共享属性和方法 341
11.3.1 共享过程 342
11.3.2 共享方法 346
11.4 面向对象的编程和内存管理 348
11.4.1 垃圾回收 349
11.4.2 释放资源 353
11.4.3 整理碎片和压缩 354
11.5 小结 355
11.6 练习 356
第12章 建立类库 357
12.1 理解类库 357
12.1.1 创建类库 358
12.1.2 为Favorites Viewer创建类库 359
12.2 强名 364
12.2.1 为程序集签名 364
12.2.2 程序集的版本 365
12.3 注册程序集 366
12.3.1 Gacutil实用程序 366
12.3.2 程序集在Reference对话框中不可见的原因 366
12.4 设计类库 368
12.5 使用第三方的类库 369
12.6 用对象浏览器查看类 370
12.7 小结 371
12.8 练习 371
第13章 创建自定义控件 372
13.1 Windows窗体控件 372
13.2 显示用户控件的属性 374
13.2.1 添加属性 375
13.2.2 显示用户控件的方法 376
13.2.3 显示用户控件的事件 377
13.3 继承控件的行为 379
13.3.1 增强控件的功能 379
13.3.2 添加BuddyBoxName属性 380
13.4 设计时或运行时 384
13.5 创建窗体库 386
13.5.1 构建窗体库项目 386
13.5.2 测试窗体 391
13.5.3 挂起事件 392
13.6 小结 395
13.7 练习 395
第14章 编写自定义图形 396
14.1 一个简单的绘图程序 396
14.1.1 创建带有用户控件的项目 396
14.1.2 绘图程序 397
14.1.3 GraphicsItem类 398
14.1.4 屏幕和客户坐标 399
14.1.5 使用鼠标和绘制GraphicsCircle对象 400
14.1.6 使控件无效 406
14.1.7 更优化 407
14.1.8 选择颜色 407
14.1.9 响应单击事件 413
14.2 处理两种颜色 416
14.2.1 表明指派的按钮 418
14.2.2 高级颜色 424
14.2.3 不同的工具 427
14.3 图像 432
14.3.1 绘制图像 432
14.3.2 缩放图像 434
14.3.3 锁定纵横比 436
14.4 更多的图形方法 438
14.5 小结 438
14.6 练习 439
第15章 访问数据库 440
15.1 数据库的概念 440
15.1.1 Microsoft Access对象 440
15.1.2 表 441
15.1.3 查询 441
15.2 SQL中的SELECT语句 441
15.3 Access中的查询 443
15.4 数据访问组件 447
15.4.1 OleDbConnection组件 448
15.4.2 DataSet组件 449
15.4.3 OleDbDataAdapter组件 449
15.4.4 OleDbCommand组件 449
15.4.5 DataView组件 449
15.5 数据绑定 449
15.5.1 DataGrid控件 450
15.5.2 DataSource属性 450
15.5.3 DataMember属性 450
15.6 小结 460
15.7 练习 461
第16章 使用ADO.NET和SQL Server进行数据库编程 462
16.1 ADO.NET 462
16.1.1 ADO.NET数据命名空间 463
16.1.2 SqlConnection类 464
16.1.3 SqlCommand类 465
16.1.4 SqlDataAdapter类 468
16.1.5 DataSet类 471
16.1.6 DataView类 472
16.2 使用ADO.NET类 474
16.3 数据绑定 483
16.3.1 BindingContext和CurrencyManager对象 484
16.3.2 绑定控件 485
16.4 小结 513
16.5 练习 513
第17章 Web窗体 515
17.1 瘦客户端体系结构 515
17.2 Web窗体和Windows窗体的对比 516
17.2.1 Windows窗体概述 516
17.2.2 Web窗体概述 516
17.2.3 Web窗体编程 517
17.2.4 Web窗体控件 519
17.3 Web应用程序 521
17.4 Web窗体中的数据绑定 533
17.4.1 DataGrid示例 534
17.4.2 使用DataGrid更新数据 540
17.5 小结 554
17.6 练习 554
第18章 创建Web服务器控件 555
18.1 Web服务器控件 555
18.1.1 创建MessageBox Web服务器控件 557
18.1.2 创建测试应用程序 558
18.1.3 完成Render方法 559
18.1.4 改变Visible属性的默认行为 559
18.1.5 给控件的可见性添加客户端脚本 561
18.2 小结 567
18.3 练习 567
第19章 Visual Basic .NET和XML 568
19.1 XML简介 568
19.1.1 XML的特性 569
19.1.2 向Visual Basic编程新手介绍XML 571
19.2 地址簿项目 571
19.2.1 创建项目 571
19.2.2 SerializableData类 572
19.2.3 载入XML文件 578
19.2.4 改变数据 582
19.2.5 发送E-Mail 582
19.2.6 创建地址列表 583
19.2.7 忽略成员 588
19.2.8 载入地址 590
19.2.9 添加新地址 591
19.2.10 地址导航 593
19.2.11 删除地址 595
19.3 集成地址簿应用程序 597
19.3.1 集成规则 597
19.3.2 从其他应用程序中读取Address Book 599
19.4 小结 603
19.5 练习 604
第20章 Web Services和.NET Remoting技术 605
20.1 Web服务概述 605
20.1.1 Web服务的工作方式 606
20.1.2 简单对象访问协议 606
20.2 构建Web服务 608
20.2.1 Web服务示例 608
20.2.2 添加更多方法 610
20.3 图片服务器服务 611
20.3.1 创建项目 611
20.3.2 返回数组 614
20.3.3 返回复杂信息 618
20.4 图片服务器客户程序 622
20.4.1 Web服务描述语言 622
20.4.2 创建客户程序 622
20.4.3 添加Web引用 624
20.4.4 显示文件夹列表 625
20.4.5 显示文件列表并选择文件 628
20.5 .NET Remoting技术 632
20.6 小结 638
20.7 练习 639
第21章 部署应用程序 640
21.1 部署 640
21.1.1 无接触部署 641
21.1.2 XCOPY部署 641
21.2 创建Visual Studio .NET安装应用程序 641
21.3 把程序集作为安装程序 643
21.4 部署的核心 646
21.4.1 发布.NET 646
21.4.2 使用Bootstrap加载程序 646
21.5 部署不同的解决方案 648
21.5.1 私有程序集 649
21.5.2 共享程序集 649
21.5.3 部署桌面应用程序 650
21.5.4 部署Web应用程序 650
21.5.5 部署XML Web服务 650
21.6 高级部署选项 650
21.6.1 为应用程序配置.NET运行时 650
21.6.2 为Web应用程序配置.NET运行时 651
21.6.3 有效的工具 652
21.7 小结 653
21.8 练习 653
第22章 建立移动应用程序 654
22.1 建立第一个CF应用程序 655
22.2 理解环境 657
22.2.1 公共语言运行库 657
22.2.2 Compact Framework类 658
22.2.3 Pocket PC上的Really Simple Syndication 659
22.2.3 为Internet访问配置模拟器 664
22.4 小结 665
22.5 练习 665
附录A 如何深入学习 666
A.1 联机资源 666
A.1.1 P2P.Wrox.com 666
A.1.2 Microsoft 资源 667
A.1.3 其他资源 667
A.2 非联机资源(书籍) 667
A.2.1 《VB.NET高级编程(第2版)》 668
A.2.2 《ASP.NET数据库入门经典—— VB.NET编程篇》 668
附录B 体系结构和设计模式 669
B.1 体系结构概述 669
B.1.1 变化和不断演化的需求 670
B.1.2 结构元素的重用 670
B.1.3 软件系统中的敏捷性 671
B.1.4 用模式满足期望 672
B.2 小结 673
附录C 代码的安全性 674
C.1 证据 675
C.2 安全策略级别和代码组 676
C.3 权限集 678
C.4 小结 678
附录D 练习答案 680
第1章 初识Visual Basic .NET 680
第2章 Microsoft .NET Framework 680
第3章 编写软件 681
第4章 流程控制 682
第5章 处理数据结构 682
第6章 建立Windows应用程序 683
第7章 显示对话框 684
第8章 创建菜单 685
第9章 调试和错误处理 686
第10章 构建对象 688
第11章 高级面向对象技术 688
第12章 建立类库 689
第13章 创建自定义控件 689
第14章 编写自定义图形 690
第15章 访问数据库 691
第16章 使用ADO.NET和SQL Server进行数据库编程 691
第17章 Web窗体 692
第18章 创建Web服务器控件 693
第19章 Visual Basic .NET 和 XML 693
第20章 Web Services和.NET Remoting技术 694
第21章 部署应用程序 695
第22章 建立移动应用程序 695
附录E .NET Framework 1.1版本对1.0版本的改进 697
E.1 改进的特性 697
E.1.1 安全性 697
E.1.2 ADO.NET 698
E.1.3 Visual Studio项目 699
E.1.4 其他信息 699
E.2 新特性 699
E.2.1 命名空间 699
E.2.2 ASP.NET移动控件 700
E.2.3 并行执行 700
E.3 小结 700
Visual Basic是一种非常流行的语言, 建立在简单易学的Basic语言基础之上. 而Visual Basic .NET的优势在于其易用性和速度, 利用该语言, 可以轻松而快捷地编写出用于Windows操作系统的应用程序.
过去, Visual Basic主要用于创建有着丰富的用户界面(包括按钮. 列表以及下拉列表框)的应用程序. 本书将介绍如何在应用程序中添加这些控件, 并探讨Windows编程的前景.
随着Microsoft的 .NET Framework的问世, 学习Visual Basic将是一件最令人兴奋的事. Visual Basic的编程人员将首次在程序设计中实现完全面向对象, 并拥有处理编程错误的强大技术和整合Internet程序的能力.
本书将全面介绍使用Visual Basic .NET进行编程的基本知识, 它将给您带来无限乐趣.
本书适用对象
本书的目的是教您如何尽可能快而轻松地运用Visual Basic .NET编写有用的程序.
本书适合于以下两类初学者:
● 一类是编程的初学者, 他们选择从Visual Basic .NET开始学起. 这是个很好的选择!Visual Basic .NET不但易学易用, 而且功能强大.
● 另一类是曾用过其他语言进行编程, 但初次接触.NET编程知识的初学者. 同样, Visual Basic .NET是一个不错的选择. 不管您熟悉的语言是Fortran还是VB6, 本书都将让您迅速掌握Visual Basic .NET.
本书的主要内容
Visual Basic .NET提供了大量的工具和语言方面的功能. 当然, 不可能用一本书包含Visual Basic .NET的所有内容, 这些内容要用一个书库来容纳. 本书的目的是让您尽快入门, 它相当于一个路标, 可以指导您的学习. 在介绍完创建应用程序的基础知识后(如创建窗口和对话框, 如何用代码处理突发事件, 什么是面向对象的程序设计, 以及如何在应用程序中使用它等), 另外, 本书还为您提供了亲自动手的机会:
● 第15. 16章介绍了如何利用数据库进行程序设计, 因此, 介绍了Access. SQL Server以及ADO.NET等知识.
● 第17章讨论了如何使用Web窗体创建用于Web的ASP.NET应用程序.
● 第19章对XML作了简要的介绍, XML这种功能强大的工具能把Visual Basic .NET应用程序和其他应用程序结合起来, 且不必考虑所使用的具体语言.
● 第20章介绍了Web服务(Web Services). 这种技术可以让应用程序访问Internet所提供的功能并与之紧密结合起来.
Visual Basic .NET所需的运行环境
除了要有一番学习的热忱之外, 学习前14章还需要一台运行Windows 2000. Windows XP或Windows NT 4 Server, 并且安装了Internet Explorer的PC机. 当然, 还要安装Microsoft Visual Studio .NET或Microsoft Visual Basic .NET Standard Edition.
后面的章节涉及到了更高级的主题, 这就需要安装更多的软件:
● 第15章要求安装Microsoft Access 2000.
● 第16章要求安装SQL Sever 7或SQL Server 2000.
如果您没有SQL Server 2000的完全版本, 可以用MSDE(Microsoft Data Engine)来代替. MSDE是SQL Server的删节版本. 与SQL Server 7.0兼容的版本可以从Office 2000 专业版和高级版中获得, 而与SQL Server 2000兼容的版本可以从Office XP中获得. MSDE与SQL Server完全版本的最大区别在于MSDE没有用户界面—— 但这点区别并不影响第16章中的练习.
● 第17章和第18章依赖于ASP.NET技术, 因此在PC机上需要安装IIS 5(该软件是Windows 2000和Windows XP附带的).
如果没有这些产品也不用担心, 更不必急于购买. 您仍能从本书中学到很多有用的知识.
用户支持
我们总是想知道您对本书的看法, 您喜欢哪些内容, 您不喜欢哪些内容, 这些信息将有助于我们下一次做得更好. 如果您有什么意见和建议, 请向feedback@wrox.com发邮件. 但是, 请一定要在您的信中注明本书的书名.
如何下载本书的示例代码
在您登录到Wrox站点http://www.wrox.com/时, 只需使用Search工具或使用书名列表就可以找到本书. 接着在Code一栏中单击Download链接, 或单击本书信息页面上的Download Code链接, 就可以获得本书所有的源代码.
从该站点上下载的文件使用WinZip进行了压缩. 在把文件保存到硬盘的一个文件夹中时, 需要使用解压缩程序(如WinZip 或 PKUnzip)对该文件解压缩. 在解压缩时, 代码常常放在各自的章节文件夹中. 在开始解压缩过程时, 请确保软件WinZip 或 PKUnzip设置为使用文件夹名.
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误, 但是错误总是难免的, 如果您在本书中找到了错误, 例如拼写错误或代码错误, 请告诉我们, 我们将非常感激. 通过勘误表, 可以让其他读者避免受挫, 当然, 这还有助于提供更高质量的信息. 请给support@wrox.com发电子邮件, 我们就会检查您的信息, 如果是正确的, 就把它传送到该书的勘误表页面上, 或在本书的后续版本中采用.
要在网站上找到勘误表, 可以登录http://www.wrox.com, 通过Advanced Search工具或书名列表查找本书, 然后在本书的信息页面上, 单击Book Errata链接.
E-Mail支持
如果您希望直接就本书的问题向对本书知之甚多的专家咨询, 那么, 就向support@wrox. com发电子邮件, 在电子邮件的“主题”(Subject)栏中, 加上本书的名称和ISBN的最后4位号码. 典型的电子邮件应该包括下列内容:
● 在“主题”栏加上书的名称. ISBN的最后4位数字(7612)和问题所在的页码.
● 在邮件的正文中加上您的姓名. 联系信息和问题.
我们不会发给您垃圾邮件. 我们只需要详细的情况以节省您的宝贵时间和我们的时间. 当您发送电子邮件时, 它会直接到达以下支持链:
● 客户支持—— 您的消息会传送到我们的客户支持人员, 他们是阅读信息的第一人. 他们有常见问题的文件, 会迅速回答一般性的问题. 他们回答关于本书和网站的一般性问题.
● 编辑支持—— 更深的问题会转发到负责本书的技术编辑处. 他(或)她具有编程或特殊产品的经验, 能够回答某个主题的详细技术问题.
● 作者支持—— 最后, 在编辑都不能回答问题的情况下(这种情况很少出现), 这些问题将转发到作者. 我们试图保护作者不要从写作中分心, 但是, 我们也很愿意将特殊的问题转发给他们. 所有的Wrox作者帮助支持他们的书籍. 他们向客户和编辑回复电子邮件, 所有的读者都会从中受益.
Wrox支持过程只能提供直接与已出版的图书相关的问题. 对于超出此范围的问题可以通过 http://p2p.wrox.com/ 论坛的团体列表来提供支持.
p2p.wrox.com
P2P邮件列表是为作者和同行的讨论而设立的. 我们在邮件列表. 论坛和新闻组中提供“程序员到程序员的支持”(programmer to programmer support), 还包括一对一的电子邮件支持系统. 如果把问题发送给P2P, 就可以相信, 您的问题不仅仅是由支持专家解答, 而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家. 在p2p.wrox.com上, 可以从许多不同的列表中获得帮助, 不仅在阅读本书时获得帮助, 还可以在开发应用程序时获得帮助. 在网站的.NET类别中, 最适合本书的是beginning_vb和vb_dotnet列表.
要订阅一个邮件列表, 可以遵循下面的步骤:
(1) 进入http://p2p.wrox.com.
(2) 从左侧的菜单栏中选择合适的列表.
(3) 单击想加入的邮件列表.
(4) 按照指示订阅和填写电子邮件地址和密码.
(5) 回复接收到的确认电子邮件.
(6) 使用订阅管理器加入更多的列表, 设置自己的邮件设置.
为什么这个系统提供最好的支持
您可加入该邮件列表中, 也可以每周分类接收它们. 如果您没有时间或设备接收该邮件列表, 可以搜索我们的在线文档. 垃圾邮件和广告邮件会被删除, 您自己的电子邮件地址会被独特的Lyris系统保护起来. 任何加入或退出列表的查询, 或者与列表相关的一般问题, 都应发送到listsupport@p2p.wrox.com.