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