第1章 Visual C# 2008程序设计概述 1
1.1 使用Visual C#编写Windows应用程序 1
1.2 编程语言——过程化、事件驱动及面向对象 2
1.2.1 对象模型 2
1.2.2 Microsoft公司的Visual Studio 4
1.3 编写C#程序 4
1.3.1 3个步骤 4
1.3.2 C#应用程序文件 5
1.4 Visual Studio环境 6
1.5 编写第一个C#工程 12
1.5.1 设置工作区 12
1.5.2 规划工程 15
1.5.3 定义用户界面 15
1.5.4 设置属性 17
1.5.5 编写代码 22
1.5.6 C#代码的语句 23
1.5.7 为HelloWorld程序编写事件处理方法 24
1.5.8 运行工程 27
1.5.9 保存工作 28
1.5.10 打开工程 29
1.5.11 修改工程 29
1.5.12 打印代码 33
1.6 示例输出 34
1.7 查找和修正错误 36
1.7.1 句法错误 36
1.7.2 运行时错误 37
1.7.3 逻辑错误 37
1.7.4 工程调试 38
1.7.5 修改事件处理程序 38
1.7.6 对象的命名规则和命名约定 40
1.8 Visual Studio的帮助 42
1.8.1 安装并运行MSDN 42
1.8.2 查看帮助主题 42
1.8.3 上下文敏感的帮助 44
1.8.4 管理窗口 45
1.9 实用编程示例 45
1.9.1 规划工程 45
1.9.2 规划对象和属性 46
1.9.3 规划事件处理方法 47
1.9.4 编写工程 47
1.10 思考与练习 49
1.10.1 复习题 49
1.10.2 编程练习 49
1.10.3 案例分析 50
第2章 用户界面设计 52
2.1 更多控件介绍 52
2.2 处理多个控件 60
2.3 设计方便用户的应用程序 62
2.3.1 设计用户界面 63
2.3.2 定义键盘快捷键 63
2.3.3 设置Accept和Cancel按钮 64
2.3.4 设置控件的Tab键顺序 64
2.3.5 设置窗体在屏幕上的位置 66
2.3.6 创建工具提示 66
2.4 为控件编码 67
2.5 打印窗体 74
2.6 实用编程示例 74
2.6.1 规划工程 74
2.6.2 规划对象和属性 75
2.6.3 规划事件处理方法 76
2.6.4 编写工程 77
2.7 良好的编程惯例 80
2.8 思考与练习 80
2.8.1 复习题 80
2.8.2 编程练习 81
2.8.3 案例分析 82
第3章 变量、常量和计算 84
3.1 数据——变量和常量 84
3.1.1 数据类型 85
3.1.2 命名规则 86
3.1.3 命名约定 86
3.1.4 有名常量与固有常量 87
3.1.5 声明变量 89
3.1.6 变量的作用域和生存期 91
3.2 计算 93
3.2.1 把字符串转换为数值数据类型 93
3.2.2 算术运算 94
3.2.3 运算顺序 95
3.2.4 在代码中应用计算 96
3.2.5 在数值数据类型之间转换 98
3.2.6 执行包含不同数据类型的计算 99
3.2.7 数的舍入 99
3.3 格式化要显示的数据 100
3.3.1 使用格式说明符代码 100
3.3.2 选择程序输出的控件 102
3.4 计算编程示例 103
3.5 处理异常 106
3.6 在消息框中显示消息 109
3.7 计数与累计总和 112
3.8 实用编程示例 113
3.8.1 规划工程 113
3.8.2 规划对象和属性 113
3.8.3 规划事件处理方法 115
3.8.4 编写工程 116
3.9 思考与练习 118
3.9.1 复习题 118
3.9.2 编程练习 118
3.9.3 案例分析 120
第4章 决策和条件 122
4.1 if语句 122
4.2 Boolean表达式 124
4.2.1 比较数值变量和常量 125
4.2.2 比较字符数据 125
4.2.3 比较字符串 126
4.2.4 测试结果是true还是false 128
4.2.5 比较大写和小写字符 128
4.2.6 复合Boolean表达式 129
4.2.7 短路操作 130
4.3 嵌套if语句 131
4.4 对单选按钮和复选框使用if语句 134
4.4.1 几个简单示例 135
4.4.2 检查单选按钮编组的状态 136
4.4.3 检查多个复选框的状态 137
4.5 增强消息框 137
4.5.1 显示消息字符串 137
4.5.2 显示多个按钮 139
4.6 输入有效性验证 140
4.7 switch语句 142
4.8 共享事件处理程序 145
4.9 调用事件处理程序 147
4.10 实用编程示例 148
4.10.1 规划工程 149
4.10.2 规划对象和属性 149
4.10.3 规划事件处理程序 151
4.10.4 编写工程 151
4.11 调试C#工程 154
4.12 逐步的调试教程 159
4.13 思考与练习 165
4.13.1 复习题 165
4.13.2 编程练习 165
4.13.3 案例分析 166
第5章 菜单、通用对话框和方法 169
5.1 菜单 169
5.1.1 定义菜单 169
5.1.2 逐步创建一个菜单 173
5.1.3 为菜单项编码 173
5.1.4 Windows菜单的标准 176
5.2 通用对话框 176
5.2.1 显示Windows通用对话框 176
5.2.2 使用对话框中的信息 177
5.2.3 使用Color对话框 177
5.2.4 使用Font对话框 177
5.2.5 设置初值 178
5.3 创建上下文菜单 179
5.3.1 逐步创建一个上下文菜单 179
5.3.2 共享方法 181
5.4 编写通用方法 181
5.4.1 创建新方法 182
5.4.2 向方法传递实参 182
5.4.3 编写返回值的方法 183
5.4.4 带有多个参数的方法 185
5.4.5 引用和输出参数 186
5.4.6 把计算分为较小的单元 187
5.5 基于已有工程创建新工程 190
5.6 实用编程示例 191
5.6.1 规划工程 191
5.6.2 规划对象和属性 191
5.6.3 规划方法 193
5.6.4 编写工程 194
5.7 思考与练习 199
5.7.1 复习题 199
5.7.2 编程练习 200
5.7.3 案例分析 201
第6章 多窗体工程 203
6.1 使用多个窗体 203
6.1.1 创建新窗体 203
6.1.2 添加和删除窗体 204
6.2 About对话框 206
6.2.1 使用About对话框模板 207
6.2.2 设置程序集信息 207
6.2.3 显示About窗体 208
6.3 使用窗体的方法和事件 209
6.3.1 显示窗体 209
6.3.2 隐藏或关闭窗体 210
6.3.3 响应窗体事件 211
6.3.4 窗体事件的顺序 211
6.3.5 编写选定事件的事件处理程序 211
6.4 多窗体工程中的变量和常量 212
6.4.1 在类中创建属性 212
6.4.2 将属性应用于多个窗体 214
6.4.3 在多个窗体间传递汇总值 215
6.5 启动界面 216
6.5.1 创建启动界面 216
6.5.2 控制启动窗体显示的时间 216
6.5.3 使启动窗体首先显示 217
6.6 在IDE之外运行程序 218
6.7 实用编程示例 218
6.7.1 规划工程 219
6.7.2 编写工程 222
6.7.3 工程解决方案的代码 223
6.8 思考与练习 231
6.8.1 复习题 231
6.8.2 编程练习 232
6.8.3 案例分析 233
第7章 列表、循环和打印 234
7.1 列表框和组合框 234
7.2 while和do/while循环 241
7.2.1 再谈布尔数据类型 242
7.2.2 对列表框使用while循环 243
7.3 for循环 244
7.4 使列表项显示为被选定状态 247
7.5 向打印机发送信息 248
7.5.1 PrintDocument控件 248
7.5.2 打印列表框的内容 252
7.5.3 打印列表中选定的表项 252
7.5.4 对齐小数点列 252
7.5.5 显示“打印预览”窗口 253
7.5.6 打印多个页面 254
7.6 实用编程示例 255
7.6.1 规划工程 256
7.6.2 规划对象和属性 256
7.6.3 规划事件处理程序 257
7.6.4 编写工程 257
7.7 思考与练习 261
7.7.1 复习题 261
7.7.2 编程练习 261
7.7.3 案例分析 262
第8章 数组 264
8.1 一维数组 264
8.1.1 下标 265
8.1.2 有效下标 266
8.2 foreach循环 266
8.3 结构 267
8.3.1 声明基于结构的变量 268
8.3.2 访问结构变量中的元素 268
8.3.3 在结构中包括数组 269
8.4 将数组元素用作累加器 269
8.4.1 加入到对应的总值 270
8.4.2 调试数组程序 271
8.5 表查询 272
8.6 为数组使用列表框 275
8.7 多维数组 276
8.7.1 初始化二维数组 277
8.7.2 打印二维表 277
8.7.3 总计二维表 278
8.7.4 二维表的查询操作 279
8.8 实用编程示例 281
8.8.1 规划工程 282
8.8.2 规划对象和属性 282
8.8.3 规划方法 284
8.8.4 编写工程 285
8.9 思考与练习 291
8.9.1 复习题 291
8.9.2 编程练习 291
8.9.3 案例分析 293
第9章 Web应用程序 295
9.1 C#和Web编程 295
9.2 Web站点的类型 297
9.2.1 文件系统Web站点 298
9.2.2 IIS Web站点 298
9.2.3 远程站点和FTP 298
9.3 创建Web站点 298
9.4 Web Form页面布局 305
9.4.1 利用表格进行布局 305
9.4.2 绝对定位 307
9.4.3 在Web页面上添加图像 308
9.4.4 级联样式表 309
9.5 在Web页面之间导航 313
9.5.1 使用超链接 313
9.5.2 添加第二个Web页面 313
9.5.3 以代码传输页面 315
9.6 检验器控件 315
9.7 维护状态 316
9.7.1 保留控件的内容 316
9.7.2 保留变量的值 316
9.7.3 检查回送 317
9.7.4 把值传送给另一个页面 317
9.8 AJAX 318
9.9 管理Web工程 319
9.10 一些Web缩写词 320
9.11 实用编程示例 320
9.11.1 规划工程 320
9.11.2 规划对象和属性 320
9.11.3 规划方法 322
9.11.4 编写工程 323
9.12 思考与练习 326
9.12.1 复习题 326
9.12.2 编程练习 326
9.13 案例分析 327
第10章 访问数据库文件 328
10.1 数据库文件 328
10.1.1 C#和数据库文件 328
10.1.2 数据库术语 328
10.1.3 XML数据 329
10.2 ADO.NET和C#的应用 331
10.3 创建数据库应用程序 332
10.3.1 Windows数据库应用程序的逐步练习 333
10.3.2 网格的智能标签 337
10.3.3 数据库模式文件 338
10.4 绑定数据字段 338
10.4.1 数据源窗口 339
10.4.2 数据库细节程序的逐步练习 339
10.5 从列表选择记录 341
10.5.1 转换为组合框选项 342
10.5.2 选择表中的字段 343
10.5.3 列表数据排序 344
10.5.4 选择字段的控件类型 345
10.6 使用Web Form选择记录 346
10.6.1 Web数据库应用程序中的安全性 346
10.6.2 创建Web选项应用程序 347
10.6.3 移植工程 351
10.7 LINQ 352
10.7.1 创建查询 352
10.7.2 LINQ工程的逐步指导 353
10.7.3 LINQ to SQL 353
10.8 实用编程示例 356
10.8.1 设计工程 356
10.8.2 设计对象和属性 357
10.8.3 设计过程 357
10.8.4 编写工程 357
10.9 思考与练习 358
10.9.1 复习题 358
10.9.2 编程练习 358
10.11 案例分析 358
第11章 数据文件 360
11.1 数据文件概述 360
11.2 简单文件I/O 360
11.3 .NET文件处理 364
11.3.1 使用流处理文件 365
11.3.2 使用StreamWriter将数据写入文件 365
11.3.3 使用StreamReader类读取文件中的数据 367
11.4 使用文件通用对话框 370
11.4.1 OpenFileDialog控件的属性 370
11.4.2 显示Open File对话框 370
11.4.3 打开和写入文件程序 372
11.5 保存列表框的内容 374
11.5.1 加载列表框 375
11.5.2 检查文件是否存在 375
11.5.3 保存文件 376
11.5.4 询问用户是否保存 376
11.5.5 Form_FormClosing事件处理程序 376
11.6 实用编程示例 377
11.6.1 设计工程 377
11.6.2 设计对象和属性 377
11.6.3 设计方法 377
11.6.4 编写工程 378
11.7 思考与练习 382
11.7.1 复习题 382
11.7.2 编程练习 382
11.7.3 案例分析 383
第12章 创建面向对象的程序 384
12.1 面向对象的编程技术 384
12.1.1 对象 384
12.1.2 面向对象的术语 385
12.1.3 可重用的类 386
12.1.4 多层应用程序 387
12.2 类 387
12.3 利用类创建新对象 395
12.4 继承 401
12.5 管理多类工程 410
12.6 使用对象浏览器 410
12.6.1 检查C#类 410
12.6.2 检查编写的类 412
12.7 实用编程示例 412
12.7.1 规划工程 413
12.7.2 规划基类窗体的对象和属性 415
12.7.3 规划基类窗体的事件处理程序 415
12.7.4 规划主窗体的对象和属性 415
12.7.5 规划主窗体的事件处理程序 416
12.7.6 规划About窗体的对象和属性 417
12.7.7 规划Summary窗体的对象和属性 417
12.7.8 规划Summary窗体的属性 417
12.7.9 规划ClothingSale类 417
12.7.10 规划MemberClothingSale对象方法 418
12.7.11 编写工程 418
12.8 复习题 428
12.9 编程练习 428
12.10 案例分析 429
第13章 图形、动画、声音和拖放 430
13.1 Windows和Web中的图形 430
13.2 图形环境 430
13.2.1 绘制图形的步骤 431
13.2.2 Paint事件处理程序 431
13.2.3 Pen和Brush对象 432
13.2.4 坐标系 433
13.2.5 Graphics方法 434
13.3 随机数 435
13.4 简单动画 438
13.4.1 显示动画图形 438
13.4.2 在运行时调整图片 438
13.4.3 移动图片 440
13.5 Timer控件 440
13.6 滚动条控件 442
13.6.1 滚动条的属性 442
13.6.2 滚动条事件 443
13.6.3 实用编程示例 443
13.7 播放声音 445
13.7.1 把声音文件添加到工程的资源中 445
13.7.2 声音播放程序 446
13.8 播放视频 447
13.9 拖放编程技术 449
13.9.1 源对象 449
13.9.2 目标对象 450
13.9.3 拖放程序 451
13.9.4 拖放图像 452
13.9.5 DragDroplmage程序 453
13.10 实用编程示例 454
13.10.1 规划工程 454
13.10.2 规划对象和属性 455
13.10.3 规划事件处理程序 456
13.10.4 编写工程 456
13.11 思考与练习 459
13.11.1 复习题 459
13.11.2 编程练习 460
13.11.3 案例分析 460
第14章 C#中的其他主题 461
14.1 高级验证技术 461
14.1.1 使用ErrorProvider控件 461
14.1.2 MaxLength和Character-Casing属性 463
14.1.3 字段级验证 464
14.1.4 使用Validating事件和CausesValidation属性 464
14.1.5 捕获用户的击键 467
14.1.6 使用屏蔽文本框进行验证 468
14.2 代码片段和样本 468
14.3 多文档界面 469
14.3.1 创建MDI工程 469
14.3.2 添加Window菜单 471
14.4 工具栏和状态栏 472
14.4.1 工具栏 472
14.4.2 状态栏 473
14.4.3 两个有用的日期控件 474
14.5 在Windows窗体上显示Web页面 477
14.5.1 WebBrowser控件 477
14.5.2 WebBrowser程序 477
14.5.3 检查Enter键 479
14.6 XML数据文件 480
14.6.1 节点、元素和属性 480
14.6.2 读写XML文件 482
14.6.3 读取XML文件的C#工具 484
14.7 WPF基础 488
14.7.1 WPF Interoperability 489
14.7.2 向Windows窗体添加WPF控件的逐步指导 490
14.7.3 编写一个WPF应用程序 491
14.7.4 创建WPF Hello World应用程序的逐步指导 492
14.7.5 Expression Blend的作用 494
14.8 思考与练习 494
14.8.1 复习题 494
14.8.2 编程练习 494
14.8.3 案例分析 494
附录A 习题答案 496
附录B 处理日期、数学和字符串运算的方法 504
B.1 处理日期 504
B.2 数学方法 506
B.3 处理字符串 507
B.4 数据类型转换的方法 508
附录C 管理环境的技巧和快捷方法 509
C.1 设置便于使用的屏幕 509
C.2 在窗体设计器中使用快捷方式 513
C.3 使用编辑器中的快捷键 514
C.4 使用上下文相关的帮助窗口 517
C.5 使用调试工具 518
C.6 复制和移动工程 519
C.7 重命名和删除事件处理程序 520
C.8 部署应用程序 521
附录D 安全机制 522
D.1 身份验证和授权 522
D.2 编写安全的代码 523
D.3 代码访问安全技术 523
D.4 安全技术进一步阅读指导 524