第1章 安装和配置Visual Studio.NET 1
1.1 .NET技术概述 1
1.2 Visual Studio.NET开发环境 1
1.2.1 安装Visual Studio.NET 1
1.2.2 体验集成开发环境 3
1.3 C#.NET程序设计基本要素 13
1.4 思考题 18
第2章 创建用户界面 19
2.1 怎样建立友好的用户界面 19
2.1.1 决定用户界面的类型 19
2.1.3 控件的类型和属性 20
2.1.2 组合方式 20
2.1.4 使用颜色和图像 21
2.1.5 符合习惯 21
2.1.6 易于使用 21
2.2 窗体和基本控件 21
2.2.1 Control类 21
2.2.2 窗体Form 22
2.2.3 Button控件 23
2.2.4 Label控件 23
2.2.5 文本框 23
2.2.6 单选框和复选框 24
2.2.7 组合框和列表框 24
2.3.1 Menu类 25
2.3 菜单和快捷键 25
2.3.2 快捷键 26
2.4 工具栏和状态栏 26
2.4.1 工具栏 26
2.4.2 状态栏 26
2.5 其他常用控件 27
2.5.1 ProgressBar 27
2.5.2 TrackBar 28
2.5.3 水平滚动条和垂直滚动条 31
2.5.4 Timer控件 32
2.5.5 时钟控件和日历控件 34
2.5.6 NumericUpDown控件和DomainUpDown控件 38
2.6 思考题 41
第3章 用户界面实例 42
3.1 例程S3-1:模式对话框和非模式对话框 42
3.1.1 项目简介 42
3.1.2 创建主窗体 42
3.1.3 添加一个新窗体 43
3.1.4 使用Label控件 43
3.1.5 使用Button控件 45
3.1.6 为Form2处理窗体初始化事件 45
3.1.7 运行程序 46
3.2.3 处理文本输入 47
3.2.2 新建项目 47
3.2 例程S3-2:用户注册窗体 47
3.2.1 项目简介 47
3.2.4 处理单选和复选事件 49
3.2.5 处理多项列表 50
3.3 例程S3-3:菜单和快捷键 52
3.3.1 项目简介 52
3.3.2 使用菜单编辑器创建菜单 52
3.3.3 处理菜单事件 53
3.3.4 使用多级菜单 54
3.3.5 定义快捷键 56
3.3.6 向菜单添加复选标记 57
3.3.8 动态菜单 59
3.3.7 建立上下文菜单 59
3.4 例程S3-4:使用工具栏和状态栏 61
3.4.1 项目简介 61
3.4.2 使用工具栏 61
3.4.3 使用状态栏 65
3.5 习题 69
第4章 图像、声音和视频 70
4.1 绘图 70
4.1.1 GDI+技术简介 70
4.1.2 System.Drawing中的常用结构 71
4.1.3 使用Graphics类 72
4.1.4 画笔和画刷 73
4.1.5 绘制文本 79
4.1.6 绘制几何图形 83
4.2 图像处理 93
4.2.1 .NET对图像处理的支持 93
4.2.2 使用Image类及其派生类 93
4.2.3 对图像进行特效处理 95
4.3 声音和视频 95
4.3.1 播放声音 95
4.3.2 播放视频 96
4.4 习题 97
5.1.1 项目简介 98
5.1.2 建立多文档应用程序 98
5.1 例程S5-1:图像处理程序 98
第5章 多媒体例程 98
5.1.3 显示图像 102
5.1.4 缩放图像 103
5.1.5 裁剪图像 105
5.1.6 旋转图像 105
5.1.7 保存图像 108
5.2 例程S5-2:使用DirectXMusic技术播放声音 109
5.2.1 项目简介 109
5.2.2 DircctX技术概述 110
5.2.3 建立项目 111
5.2.4 为项目添加DirectX支持 111
5.2.5 添加成员 112
5.2.6 初始化DirectX和DirectXMusic对象 113
5.2.7 播放音乐 114
5.3.1 项目简介 116
5.3.2 Windows Media Player控件简介 116
5.3 例程S5-3:Windows Media Player播放器 116
5.3.3 建立项目 117
5.3.4 添加控件 117
5.3.5 添加菜单及事件 118
5.4 习题 121
第6章 组件程序设计 122
6.1 基于组件的应用程序设计 122
6.1.1 组件 122
6.1.2 客户/服务器模型 122
6.1.4 VisualStudio.NET中的组件编程 123
6.1.3 组件化程序设计 123
6.2 编写组件服务器 124
6.2.1 .NET基本类库 124
6.2.2 创建自己的类库 126
6.2.3 建立控件库 126
6.2.4 组件对象的生存期 127
6.3 编写组件客户 131
6.3.1 本地调用 131
6.3.2 远程调用 132
6.4 习题 132
7.1.3 创建订单类 133
7.1.2 建立项目 133
7.1 组件服务器例程S7-1:书店购书订单服务 133
7.1.1 项目简介 133
第7章 组件客户及服务器例程 133
7.1.4 创建订单链表类 140
7.2 组件客户例程S7-2:书店购书订单管理程序 142
7.2.1 项目简介 142
7.2.2 建立项目 143
7.2.3 添加引用 143
7.2.4 编辑窗体界面 143
7.2.5 创建组件对象 144
7.2.6 处理书号、书名和单价 144
7.2.7 处理订单号 146
7.2.8 处理订单提交 147
7.2.9 处理订单取消 149
7.2.10 控制送货员状态 149
7.2.11 处理送货事件 152
7.3 Windows控件库例程S7-3:计算器和通用密码对话框 154
7.3.1 项目简介 154
7.3.2 新建项目 155
7.3.3 计算器控件 156
7.3.4 通用密码对话框控件 162
7.3.5 在客户程序中调用Windows控件 165
7.4 习题 168
8.1.1 数据访问技术的发展 169
8.1 ADO.NET概述 169
第8章 数据访问技术 169
8.1.2 选择ADO.NET进行数据访问 170
8.2 ADO.NET中的对象 171
8.2.1 连接对象 171
8.2.2 命令对象 172
8.2.3 数据适配器对象 172
8.2.4 数据阅读器对象 172
8.2.5 错误对象和错误集合对象 173
8.2.6 事务对象 173
8.2.7 参数和参数集对象 173
8.2.8 其他对象 173
8.3.1 DataSet对象 174
8.3 使用数据集访问和管理数据 174
8.3.2 DataTable对象 177
8.3.3 DataTableCollection对象 180
8.3.4 DataRow对象 181
8.3.5 DataRowCollection对象 183
8.3.6 DataColumn对象 183
8.3.7 DataColumnCollection对象 185
8.4 使用ADO.NET对象访问和管理数据 186
8.4.1 SqlConnection对象 186
8.4.2 SqlCommand对象 189
8.4.3 SqlDataAdapter对象 191
8.4.4 SqlDataReader对象 195
8.4.5 SqlParameter对象 198
8.4.6 SqlParameterCollection对象 199
8.4.7 SqlError对象 200
8.4.8 SqlErrorCollection对象 200
8.4.9 SqlTransaction对象 200
8.5 习题 201
第9章 数据库项目例程 202
9.1 例程S9-1:建立电子器材管理数据库项目 202
9.1.1 项目简介 202
9.1.2 创建项目 202
9.1.3 向项目中添加数据表 203
9.2.2 修改设计 205
9.2.3 添加数据向导窗体 205
9.2 数据集例程S9-2:电子器材管理程序 205
9.2.1 创建项目 205
9.1.4 向表中添加数据 205
9.2.4 显示数据窗体 208
9.2.5 完善应用程序 209
9.3 ADO.NET对象例程S9-3:电子器材管理程序 209
9.3.1 创建项目 209
9.3.2 修改设计 209
9.3.3 设计人员管理窗体 209
9.3.4 设计器材管理窗体 214
9.3.5 设计采购管理窗体 214
9.4 习题 220
9.3.6 设计销售管理窗体 220
第10章 建立Windows服务 221
10.1 Windows服务概述 221
10.2 Windows服务应用程序体系结构 222
10.2.1 名字空间 222
System.ServiceProcess 222
10.2.2 System.ServiceProcess. 223
ServiceBase 223
10.2.3 System.ServiceProcess. 225
ServiceController 225
ServiceInstaller 228
10.2.4 System.ServiceProcess. 228
10.2.5 System.ServiceProcess. 230
ServiceProcessDescription Attribute 230
10.2.6 System.ServiceProcess. 231
ServiceProcessInstaller 231
10.2.7 System.ServiceProcess. 233
TimeoutException 233
10.3 创建、配置和运行Windows服务 233
10.3.1 创建Windows服务 233
10.3.2 添加安装组件 235
10.3.3 安装和卸载Windows服务 235
10.3.4 启动服务 237
10.3.6 调试Windows服务 238
10.3.5 安全性设置 238
10.3.7 服务日志 240
10.3.8 与Windows服务进行通讯 241
10.4 Windows服务项目例程S10-1 241
10.4.1 项目简介 241
10.4.2 创建项目 242
10.4.3 为项目添加组件 242
10.4.4 添加代码 243
10.4.5 安装和运行服务 245
10.5 习题 246
11.1 文件和流 247
11.1.1 概述 247
第11章 持久性数据 247
11.1.2 System.IO.File和System.IO.Directory 248
11.1.3 System.IO.FileStream 252
11.1.4 System.IO.StreamReader 256
11.1.5 System.IO.StreamWriter 259
11.1.6 System.IO.BinaryReader和System.IO.BinaryWriter 259
11.1.7 关于文件和流的一些枚举属性 260
11.1.8 文件和流的异常 262
11.2 注册表编程 263
11.2.1 注册表概述 263
11.2.2 Visual C#.NET对注册表编程的支持 264
11.3 习题 267
12.1.1 项目介绍 268
12.1文件操作项目例程S12-1:文件加密器 268
第12章 文件及注册表例程 268
12.1.2 算法实现 270
12.1.3 主程序实现 273
12.2 注册表例程S12-2:系统个性化设置 283
12.2.1 项目简介 283
12.2.2 创建项目 284
12.2.3 修改桌面显示 285
12.2.4 修改“开始”菜单 289
12.2.5 修改“显示”属性 292
12.2.6 程序的最后完善 297
12.3 习题 297
13.1.1 FileSystemWatcher组件简介 298
13.1.2 创建FileSystemWatcher组件实例 298
第13章 高级组件服务 298
13.1 文件系统 298
13.1.3 方法、属性和事件 299
13.1.4 关于大容量文件系统变化的考虑 300
13.1.5 文件监视例程S13-1 301
13.2 事件日志 302
13.2.1 EventLog 组件介绍 302
13.2.2 Windows事件日志中的关键概念 302
13.2.3 事件日志条目类型 304
13.2.4 创建EventLog组件 304
13.2.6 EventLog编程体系结构 305
13.2.5 配置EventLog组件 305
13.2.7 EventLog类中重要的成员 306
13.2.8 日志组件例程S13-2 307
13.2.9 测试代码 311
13.3 目录服务 313
13.3.1 组件简介 313
13.3.2 活动目录对象介绍 313
13.3.3 在Visual Studio.NET中使用活动目录 315
13.3.4 创建DirectoryEntry组件实例 315
13.3.5 搜索活动目录结构 316
13.4 消息队列 317
13.4.1 消息队列概述 317
13.3.6 在活动目录中修改对象 317
13.4.2 认识消息和消息队列 318
13.4.3 创建消息队列 319
13.4.4 访问消息队列 320
13.4.5 删除队列 321
13.4.6 清空队列内容 322
13.4.7 与消息队列交互 322
13.5 性能监视 324
13.5.1 PerformanceCounter组件的创建 325
13.5.2 配置PerformanceCounter组件对象 326
13.5.3 在.NET应用程序中使用性能计数器 326
13.5.4 在服务器资源管理器中使用性能计数器 327
13.5.5 创建性能计数器类别 328
13.5.6 性能计数器数据分析 330
13.5.7 性能计数器生存期 333
13.5.8 向性能计数器写入值 333
13.6 进程控制 334
13.6.1 Process组件简介 334
13.6.2 创建Process组件 335
13.6.3 操作Process组件 336
13.6.4 查看进程信息 336
13.6.5 管理进程 338
13.7 计时器 339
13.7.1 服务器计时器与Windows计时器 339
13.7.3 创建基于服务器的计时器实例 340
13.7.2 计时器编程体系结构 340
13.7.4 监视基于服务器的计时器 341
13.8 习题 342
第14章 Web应用开发 343
14.1 创建Web应用程序 343
14.1.1 Web应用程序的构成 343
14.1.2 Web应用程序的工作机制 343
14.1.3 Web服务器控件 345
14.1.4 构建自己的控件 350
14.2 建立Web服务 351
14.2.1 Web服务概述 351
14.2.2 建立和调用Web服务 351
14.2.4 Web服务的现状和未来 352
14.2.3 发布Web服务 352
14.3 习题 353
第15章 Web例程 354
15.1 例程S15-1:简单Web应用程序 354
15.1.1 项目简介 354
15.1.2 准备工作 354
15.1.3 建立项目 355
15.1.4 添加服务器控件 356
15.1.5 编写事件处理代码 356
15.1.6 在开发环境中编译与运行Web窗体 357
15.1.7 把Web应用发布到其他服务器 357
15.2.2 创建项目 358
15.2.1 项目简介 358
15.2 例程S15-2:使用基本Web服务器控件 358
15.3 例程S15-3:使用DataGrid控件 361
15.3.1 项目简介 361
15.3.2 建立项目 361
15.3.3 Web窗体开发的一点补充 363
15.4 例程S15-4:使用验证控件 364
15.5 例程S15-5:cookie使用与安全认证 366
15.5.1 什么是cookie 366
15.5.2 cookie的用途 367
15.5.3 一个读写与清除cookie的例子 368
15.6.1 用户认证简介 370
15.6 例程S15-6:用户认证 370
15.6.2 项目简介 372
15.6.3 建立数据库 372
15.6.4 建立项目 373
15.7 例程S15-7:自定义Web控件 379
15.7.1 项目简介 379
15.7.2 建立项目 379
15.8 例程S15-8:创建和调用Web服务 381
15.8.1 项目简介 381
15.8.2 建立项目 381
15.8.3 调用服务 383
15.8.4 发布服务 386
15.9 习题 389
第16章 体验XML 390
16.1 理解XML 390
16.1.1 创建XML 391
16.1.2 XML中的一些基本概念 393
16.1.3 .NET中的XML 395
16.2 在应用程序中使用XML 395
16.2.1 例程16-1:读取XML文档 395
16.2.2 例程16-2:输出XML文档 399
16.2.3 例程16-3:转换XML文档 401
16.3 在Web中使用XML 404
16.3.1 例程16-4:用XML建设网站 404
16.3.2 例程16-5:通过SOAP创建和调用Web服务 414
16.4 ADO和IE5中的XML 420
16.4.1 存储为XML形式的ADO记录集 421
16.4.2 IE数据岛和绑定 422
16.4.3 以XML数据格式保存记录 424
16.4.4 打开记录集 425
16.5 习题 425
附录A 部分习题参考答案 426
第1章 426
第2章 426
第3章 427
第4章 427
第6章 428
第5章 428
第7章 429
第8章 429
第9章 430
第10章 430
第11章 430
第12章 431
第13章 432
第14章 432
第15章 433
第16章 434