第一部分 Visual C#环境 3
第1章 全身心投入:Visual C#2005编程之旅 3
1.1 开始使用Visual C#2005 4
1.2 创建新项目 4
1.3 理解Visual Studio.NET环境 6
1.4 修改对象的属性 7
1.4.1 对象的命名 7
1.4.2 设置窗体的Text属性 8
1.4.3 保存项目 9
1.4.4 为窗体添加图标 9
1.4.5 改变窗体的大小 10
1.5 为窗体增加控件 11
1.6 设计界面 11
1.6.1 在窗体中增加可见控件 12
1.6.2 在窗体中添加不可见控件 13
1.7 编写界面后的代码 14
1.7.1 让用户浏览文件 15
1.7.2 使用代码终止程序 17
1.8 运行项目 17
1.9 小结 18
1.10 问与答 19
1.11 作业 19
1.11.1 测验 19
1.11.2 答案 19
1.11.3 练习 20
第2章 Visual C# 2005导航 21
2.1 使用Visual C# 2005起始页 21
2.1.1 创建新项目 22
2.1.2 打开已有的项目 23
2.2 导航和定制Visual C#环境 23
2.2.2 显示和隐藏设计窗口 24
2.2.1 使用设计窗口 24
2.2.4 停靠设计窗口 25
2.2.3 浮动设计窗口 25
2.2.5 自动隐藏设计窗口 26
2.3 使用工具栏 27
2.3.1 显示和隐藏工具栏 27
2.3.2 停靠工具栏和调整大小 28
2.4 使用工具箱添加控件到窗体中 28
2.5 使用“属性”窗口设置对象属性 29
2.5.1 选择对象并查看它的属性 30
2.5.2 查看和修改属性 30
2.5.3 使用颜色属性 31
2.5.4 查看属性说明 33
2.6 管理项目 33
2.6.1 使用“解决方案资源管理器”管理项目文件 33
2.6.3 理解项目组件 35
2.6.2 使用解决方案 35
2.6.4 设置项目属性 36
2.6.5 添加和删除项目文件 37
2.7 快速而简单的编程入门指南 38
2.7.1 用变量存储值 38
2.7.2 使用过程来编写代码功能单元 38
2.8 获得帮助 39
2.9 小结 40
2.10 问与答 40
2.11 作业 40
2.11.1 测验 40
2.11.2 答案 41
2.11.3 练习 41
第3章 理解对象和集合 43
3.2 理解属性 44
3.1 理解对象 44
3.2.1 获取和设置属性 45
3.2.2 使用对象及其属性 45
3.3 理解方法 49
3.3.1 触发方法 49
3.3.2 理解方法的动态性 50
3.4 创建简单的对象示例项目 50
3.4.1 为绘图项目创建界面 50
3.4.2 编写基于对象的代码 50
3.4.3 测试对象示例项目 53
3.5 理解集合 54
3.6 使用对象浏览器 56
3.7 小结 56
3.9 作业 57
3.9.1 测验 57
3.8 问与答 57
3.9.2 答案 58
3.9.3 练习 58
第4章 理解事件 59
4.1 理解事件驱动的编程 59
4.1.1 触发事件 60
4.1.2 由用户交互触发的事件 60
4.1.5 避免递归事件 61
4.1.4 由操作系统触发的事件 61
4.1.3 由对象触发的事件 61
4.1.6 访问对象的事件 62
4.1.7 使用事件参数 64
4.1.8 删除事件处理程序 65
4.2 创建事件示例项目 66
4.2.1 创建用户界面 66
4.2.2 创建事件处理程序 67
4.4 问与答 69
4.3 小结 69
4.5 作业 70
4.5.1 测验 70
4.5.2 答案 70
4.5.3 练习 70
第二部分 创建用户界面 75
第5章 创建窗体:基础知识 75
5.1 修改窗体的名称 76
5.2 改变窗体的外观 76
5.2.1 在窗体的标题栏中显示文字 77
5.2.2 改变窗体的背景色 78
5.2.3 将图像添加到窗体背景中 79
5.2.4 为窗体添加图标 80
5.2.5 为窗体添加最小化、最大化和控件框按钮 81
5.2.6 修改窗体边框的外观和行为 82
5.3.1 显示窗体 83
5.3 显示和隐藏窗体 83
5.2.7 控制窗体最小化和最大化时的大小 83
5.3.2 理解窗体的模式 85
5.3.3 指定窗体的初始显示位置 85
5.3.4 在正常、最大化或最小化的状态下显示窗体 86
5.3.5 防止窗体在任务栏中出现 87
5.3.6 卸载窗体 87
5.4 小结 88
5.5 问与答 89
5.6 作业 89
5.6.1 测验 89
5.6.2 答案 89
5.6.3 练习 90
第6章 创建窗体:高级技能 91
6.1 使用控件 91
6.4 通过绘制来添加控件 92
6.3 通过从工具箱中拖曳来添加控件 92
6.2 在工具箱中双击来添加控件 92
6.4.1 对控件进行操作 93
6.4.2 使用网格(大小和位置) 93
6.4.3 使用视图轮廓线(snap line) 95
6.4.4 选择一组控件 96
6.4.5 对齐控件 98
6.4.6 使控件的大小相同 98
6.4.7 使一组控件的间距相等 99
6.4.8 为一组控件设置属性值 99
6.4.9 锚定控件和自动调整控件的大小 100
6.4.10 创建Tab顺序 103
6.4.11 层次控制(Z顺序) 104
6.5 创建最顶层的无模式窗口 104
6.6 创建透明的窗体 104
6.7 创建可滚动的窗体 105
6.8 创建多文档的界面 106
6.9 小结 109
6.10 问与答 109
6.11 作业 109
6.11.1 测验 110
6.11.2 答案 110
6.11.3 练习 110
第7章 使用传统控件 111
7.1 使用Label控件显示静态的文本 111
7.2 允许用户使用文本框输入文本 112
7.2.1 指定文本对齐方式 113
7.2.2 创建多行的文本框 113
7.2.3 添加滚动条 114
7.2.4 限制用户可以输入的字符数 115
7.2.5 创建密码字段 116
7.2.6 理解文本框的常用事件 116
7.3 创建按钮 117
7.4 使用复选框表示是/否选项 118
7.5 创建容器和单选按钮组 119
7.5.1 使用面板(Panel)和分组框(Group Box) 119
7.5.2 使用单选按钮 121
7.6 使用列表框显示列表 122
7.6.1 在设计时操作元素 123
7.6.2 在运行时操作元素 123
7.6.3 添加元素到列表中 124
7.6.4 将元素从列表中删除 125
7.6.5 清除列表 126
7.6.6 在列表中查询指定元素的信息 126
7.6.7 对列表进行排序 127
7.7 使用组合框创建下拉列表 127
7.8 小结 128
7.10.1 测验 129
7.10 作业 129
7.9 问与答 129
7.10.2 答案 130
7.10.3 练习 130
第8章 使用高级控件 131
8.1 创建计时器 131
8.2 创建带标签页的对话框 134
8.3 在图像列表(Image List)中 136
保存图片 136
8.4 使用“列表视图”控件创建增强的列表 137
8.4.1 创建列 138
8.4.2 添加列项 139
8.4.3 使用代码对List View进行操作 140
8.4.4 使用代码添加列表元素 140
8.5 使用“树视图”(Tree View)创建层次列表 141
8.4.7 删除所有列表元素 141
8.4.6 使用代码删除列表元素 141
8.4.5 在代码中判断选中的元素 141
8.5.1 添加节点到Treen View中 142
8.5.2 删除节点 144
8.5.3 清除所有节点 144
8.6 小结 144
8.7 问与答 145
8.8 作业 145
8.8.1 测验 145
8.8.2 答案 145
8.8.3 练习 146
第9章 为窗体添加菜单和工具栏 147
9.1 创建菜单 147
9.1.1 创建顶级的菜单项 148
9.1.2 创建顶级菜单的菜单项 150
9.1.4 创建复选菜单项(checked menu item) 151
9.1.3 移动和删除菜单项 151
9.1.5 对菜单进行编程 152
9.1.6 实现上下文菜单 154
9.1.7 为菜单项分配快捷键 156
9.2 使用Toolbar(工具栏)控件 157
9.2.1 使用按钮集合添加工具栏按钮 157
9.2.2 对工具栏进行编程 159
9.2.3 为工具栏按钮创建下拉菜单 160
9.3 创建状态栏 161
9.4 小结 162
9.5 问与答 162
9.6 作业 162
9.6.1 测验 162
9.6.2 答案 162
9.6.3 练习 163
10.1 理解类成员 167
第三部分 编程 167
第10章 创建和调用方法 167
10.2 定义和编写方法 168
10.2.1 声明不返回值的方法 169
10.2.2 声明返回值的过程 172
10.3 调用方法 173
10.4 退出方法 178
10.5 创建静态的方法 178
10.6 避免无限递归 178
10.7 小结 179
10.8 问与答 180
10.9 作业 180
10.9.1 测验 180
10.9.2 答案 180
10.9.3 练习 181
第11章 使用常量、数据类型、变量和数组 183
11.1 理解数据类型 184
11.1.1 确定数据类型 184
11.1.2 将数据从一种数据类型转换为另一种数据类型 186
11.2 定义和使用常量 187
11.3 声明和引用变量 189
11.3.1 声明变量 189
11.3.2 传递值给变量 190
11.3.3 在表示式中使用变量 190
11.4 使用数组 191
11.4.1 声明数组 191
11.4.2 引用数组变量 191
11.4.3 创建多维数组 192
11.5 确定作用域 193
11.5.1 理解块作用域 194
11.5.3 理解私有级作用域 195
11.5.2 理解方法级(局部)作用域 195
11.6.1 使用前缀表示数据类型 196
11.6 命名规范 196
11.6.2 使用变量前缀表示作用域 197
11.7 在Picture Viewer项目中使用变量 197
11.7.1 为选项创建变量 197
11.7.2 初始化和使用选项变量 198
11.8 小结 200
11.9 问与答 201
11.10 作业 201
11.10.1 测验 201
11.10.2 答案 201
11.10.3 练习 202
第12章 执行算术运算、字符串操作和日期/时间调整 203
12.1 使用Visual C#执行基本的算术运算 203
12.1.2 执行减法和求负运算 204
12.1.1 执行加法运算 204
12.1.3 执行乘法运算 205
12.1.4 执行除法运算 205
12.1.5 执行取模算术运算 205
12.1.6 判断运算符优先级顺序 205
12.2 比较 207
12.3 理解布尔逻辑 207
12.3.1 使用与运算符( ) 208
12.3.2 使用非运算符(!) 208
12.3.3 使用或运算符(|) 209
12.3.4 使用异或运算符(^) 209
12.3.5 对字符串进行操作 209
12.3.6 连接字符串 210
12.3.7 使用字符串的基本方法和属性 210
12.4 使用日期和时间 212
12.4.2 增加或减少日期或时间 213
12.4.1 理解DateTime数据类型 213
12.4.3 获取日期的组成部分 214
12.4.4 格式化日期和时间 214
12.4.5 获取当前的系统日期和时间 215
12.5 小结 215
12.6 问与答 215
12.7 作业 216
12.7.1 测验 216
12.7.2 答案 216
12.7.3 练习 216
第13章 使用Visual C#代码做出决策 217
13.1 使用if...else进行决策 217
13.1.1 当表达式为False时执行代码 219
13.1.2 嵌套的if...else结构 220
13.2 使用switch语句对表达式进行多值判断 221
13.3 小结 224
13.4 问与答 225
13.5 作业 225
13.5.1 测验 225
13.5.2 答案 225
13.5.3 练习 226
第14章 使用循环提高效率 227
14.1 使用for语句执行确定次数的循环 227
14.1.1 使用for初始化循环 227
14.1.2 创建for示例 229
14.2 使用while和do...while语句执行次数不确定的循环 231
14.2.1 创建do...while语句 231
14.2.2 终止do...while循环 231
14.2.3 创建do...while示例 232
14.3 小结 234
14.4 问与答 234
14.5.3 练习 235
14.5.2 答案 235
14.5 作业 235
14.5.1 测验 235
第15章 调试代码 237
15.1 在代码中添加注释 238
15.2 识别两种基本的错误 239
15.3 使用Visual C#调试工具 241
15.3.1 使用断点 241
15.3.2 使用“即时”窗口 243
15.3.3 使用“输出”窗口 245
15.4 使用try...catch...finally创建结构化的错误处理程序 246
15.4.1 处理异常 248
15.4.2 处理预期的异常 249
15.5 小结 251
15.7.2 答案 252
15.7.1 测验 252
15.7 作业 252
15.6 问与答 252
15.7.3 练习 253
第16章 使用类设计对象 255
16.1 理解类 256
16.1.1 使用类来封装数据和代码 256
16.1.2 比较实例成员和静态成员 256
16.1.3 理解构造函数和析构函数 257
16.1.4 创建对象接口 258
16.1.5 将对象的性质暴露为属性 259
16.1.6 使用get结构创建可读的属性 261
16.1.7 使用set结构创建可写的属性 261
16.1.8 创建只读或只写的属性 261
16.1.9 将函数暴露为方法 262
16.2.2 后期联编对象变量 263
16.2.1 为变量绑定到对象引用 263
16.2 根据类实例化对象 263
16.2.3 前期联编对象变量 264
16.2.4 在声明变量时创建新的对象 264
16.2.5 解除对象引用 265
16.2.6 理解对象生命周期 265
16.3 小结 266
16.4 问与答 267
16.5 作业 267
16.5.1 测验 267
16.5.2 答案 267
16.5.3 练习 268
第17章 与用户交互 269
17.1 使用MessageBox.Show()方法来显示消息 269
17.1.1 指定按钮和图标 270
17.1.2 判断单击的是哪个按钮 272
17.1.3 创建好的消息 273
17.2 创建自定义的对话框 273
17.3 和键盘交互 276
17.4 使用常见的鼠标事件 278
17.5 小结 281
17.6 问与答 281
17.7 作业 281
17.7.1 测验 281
17.7.2 答案 282
17.7.3 练习 282
第18章 使用图形 283
18.1 理解Graphics对象 283
18.1.1 为窗体或控件创建Graphics对象 284
18.1.2 为新的位图创建Graphics 284
对象 284
18.1.3 不需要对象时释放对象 285
18.2 使用画笔 286
18.3 使用系统颜色 287
18.4 使用矩形 289
18.5 绘制图形 290
18.5.1 绘制线条 290
18.5.2 绘制矩形 290
18.5.3 绘制圆形和椭圆 290
18.5.4 清除绘图表面 291
18.6 绘制文字 291
18.7 保持窗体上的图像 292
18.8 创建一个图形项目示例 292
18.9 小结 297
18.10 问与答 297
18.11.2 答案 298
18.11.3 练习 298
18.11.1 测验 298
18.11 作业 298
第四部分 使用数据 301
第19章 执行文件操作 301
19.1 使用“打开文件对话框”控件和“保存文件对话框”控件 301
19.1.1 使用“打开文件对话框”控件 302
19.1.2 创建文件过滤器 303
19.1.3 显示“打开文件对话框” 304
19.1.4 使用“保存文件对话框”控件 304
19.2 使用File对象对文件进行操作 306
19.2.1 判断文件是否存在 306
19.2.2 复制文件 307
19.2.3 移动文件 307
19.2.4 重命名文件 308
19.2.5 删除文件 308
19.2.6 获取文件的属性 309
19.2.7 获取文件的日期和时间信息 310
19.2.8 获取文件的属性(attribute) 310
19.2.9 编写获取文件属性的代码 310
19.3 使用Directory对象对目录进行操作 313
19.4 小结 314
19.5 问与答 314
19.6 作业 314
19.6.1 测验 314
19.6.2 答案 314
19.6.3 练习 315
第20章 使用文本文件和注册表 317
20.1 使用注册表 317
20.1.1 理解Windows注册表的结构 318
20.1.3 创建注册表键 319
20.1.2 使用Registry和RegistryKey访问注册表 319
20.1.4 删除注册表的键 320
20.1.5 获取和设置键值 321
20.1.6 修改Picture Viewer项目以使用文本文件和注册表 322
20.1.7 根据注册表显示选项 322
20.1.8 将选项保存到注册表中 323
20.1.9 使用保存在注册表中的选项 324
20.1.10 测试和调试Picture Viewer项目 325
20.2 读写文本文件 327
20.2.1 对文本文件进行写操作 327
20.2.2 读取文本文件 328
20.2.3 修改Picture Viewer项目以使用文本文件 330
20.2.4 创建Picture Viewer日志文件 330
20.2.5 显示Picture Viewer日志文 332
件 332
20.2.6 测试你的Picture Viewer日志 333
20.4 问与答 334
20.3 小结 334
20.5 作业 335
20.5.1 测验 335
20.5.2 答案 335
20.5.3 练习 335
第21章 使用数据库 337
21.1 ADO.NET简介 338
21.1.1 连接数据库 338
21.1.2 关闭与数据库的连接 339
21.2 操作数据 340
21.2.1 理解DataTable 340
21.2.2 创建DataAdapter 340
21.2.3 创建和填充DataTables 342
21.2.4 引用DataRow中的域 342
21.2.5 导航记录 344
21.2.6 编辑记录 346
21.2.7 创建新的记录 346
21.2.8 删除记录 347
21.2.9 运行数据库示例 348
21.3 小结 349
21.4 问与答 349
21.5 作业 349
21.5.1 测验 349
21.5.2 答案 349
21.5.3 练习 350
第22章 使用自动化控制其他应用程序 351
22.1 创建对自动化库的引用 352
22.2 创建一个自动化服务器实例 353
22.3 对服务器进行操作 353
22.3.1 显示Excel 353
22.3.3 使用Excel工作簿中的数据 354
22.3.2 创建Excel工作簿 354
22.3.4 测试客户端应用程序 356
22.4 自动化Microsoft Word 2003 357
22.4.1 创建对自动化库的引用 357
22.4.2 创建自动化服务器示例 358
22.5 小结 359
22.6 问与答 360
22.7 作业 360
22.7.1 测验 360
22.7.2 答案 360
22.7.3 练习 360
第五部分 部署解决方案及其他 363
第23章 部署应用 363
23.1 理解ClickOnce技术 363
23.2 使用发布向导来创建ClickOnce程序 364
23.3 测试Picture Viewer ClickOnce应用程序 366
23.4 卸载已经发布的应用程序 367
23.5 在创建ClickOnce程序时设置高级选项 368
23.6 小结 368
23.7 问与答 369
23.8 作业 369
23.8.1 测验 369
23.8.2 答案 369
23.8.3 练习 369
第24章 广阔的视野 370
24.1 .NET框架 370
24.2 通用语言运行环境 371
24.3 微软中间语言 371
24.4 名称空间 372
24.5 通用类型系统 373
24.6 垃圾回收 373
24.7 进一步的阅读 374
24.8 小结 374