第1章 .NET相关基础知识 1
1.1 .NET基础知识 1
1.1.1 什么是.NET 1
1.1.2 .NET的产生 1
1.1.3 .NET的特点 2
1.1.4 .NET的版本 2
1.1.5 .NET的应用 3
1.2 .NET框架简介 4
1.2.1 什么是.NET框架 4
1.2.2 .NET框架构成 4
1.2.3 .NET框架组件 4
1.2.4 .NET框架环境 5
1.2.5 .NET框架类库 6
1.3 C#语言基础知识 8
1.3.1 C#语言简介 8
1.3.2 C#语言发展历史 8
1.3.3 C#语言结构 9
1.3.4 C#语言发展前景 10
1.4 Visual Studio.NET开发工具 11
1.4.1 VS.NET简介 11
1.4.2 VS.NET功能 11
1.4.3 VS.NET发展历史 12
1.4.4 VS.NET特色 13
第2章 Visual Studio 2012软件介绍 14
2.1 VS2012开发工具介绍 14
2.1.1 VS2012软件简介 14
2.1.2 VS2012系统要求 14
2.1.3 VS2012硬件要求 14
2.1.4 VS2012版本介绍 15
2.1.5 VS2012新特性 15
2.2 VS2012安装方法 16
2.2.1 VS2012官方下载地址 16
2.2.2 最低磁盘空间需求 16
2.2.3 安装步骤 16
2.2.4 软件注册 19
2.2.5 环境配置 19
2.3 VS2012集成开发环境(IDE) 21
2.3.1 起始页 21
2.3.2 解决方案资源管理器 22
2.3.3 类视图窗口 22
2.3.4 属性窗口 23
2.3.5 属性页窗口 24
2.3.6 工具箱窗口 24
2.3.7 数据源窗口 25
2.3.8 服务器资源管理器窗口 25
2.4 新建窗体应用程序示例 26
2.4.1 新建项目 26
2.4.2 添加控件 28
2.4.3 添加执行代码 28
2.4.4 编译与调试 30
2.4.5 系统运行 32
第3章 C#实用语法基础 33
3.1 程序基础 33
3.1.1 C#语言基础 33
3.1.2 C#程序结构 33
3.1.3 简单程序示例 33
3.1.4 文档注释 34
3.2 基本概念 35
3.2.1 启动应用程序 35
3.2.2 终止应用程序 35
3.2.3 声明 36
3.2.4 成员 36
3.2.5 成员访问 36
3.2.6 签名和重载 36
3.2.7 范围 37
3.2.8 命名空间和类型名称 37
3.2.9 自动内存管理 37
3.2.10 执行顺序 37
3.3 词法结构 37
3.3.1 程序 37
3.3.2 文法 37
3.3.3 词法分析 37
3.3.4 标记 38
3.3.5 预处理指令 38
3.4 命名空间 38
3.4.1 编译单元 38
3.4.2 命名空间声明 38
3.4.3 Extern别名 38
3.4.4 using指令 39
3.4.5 命名空间成员 39
3.4.6 类型声明 39
3.4.7 命名空间别名限定符 39
3.5 枚举 39
3.5.1 枚举声明 40
3.5.2 枚举修饰符 40
3.5.3 枚举成员 40
3.5.4 System. Enum类型 40
3.5.5 枚举值和运算 40
3.6 变量 41
3.6.1 变量类别 41
3.6.2 默认值 42
3.6.3 明确赋值 42
3.6.4 变量引用 42
3.6.5 变量引用的原子性 42
3.7 数组 42
3.7.1 数组类型 43
3.7.2 数组创建 43
3.7.3 数组元素访问 43
3.7.4 数组成员 43
3.7.5 数组协变 43
3.7.6 数组赋初始值 43
3.8 类型 44
3.8.1 值类型 44
3.8.2 引用类型 46
3.8.3 装箱和拆箱 47
3.8.4 构造类型 47
3.8.5 类型形参 47
3.8.6 表达式目录树类型 47
3.9 转换 47
3.9.1 隐式转换 48
3.9.2 显式转换 48
3.9.3 标准转换 48
3.9.4 自定义转换 48
3.9.5 匿名函数转换 48
3.9.6 方法组转换 48
3.10 类与对象 49
3.10.1 类声明 49
3.10.2 类成员 49
3.10.3 可访问性 50
3.10.4 基类 50
3.10.5 字段 51
3.10.6 方法 52
3.10.7 其他函数成员 55
3.11 结构 56
3.11.1 结构声明 56
3.11.2 结构成员 56
3.11.3 类和结构的区别 57
3.11.4 结构示例 57
3.12 运算符 57
3.12.1 运算符法则 57
3.12.2 一元运算符 58
3.12.3 算术运算符 59
3.12.4 移位运算符 60
3.12.5 关系和类型测试运算符 60
3.12.6 逻辑运算符 61
3.12.7 条件逻辑运算符 61
3.12.8 空合并运算符 61
3.12.9 条件运算符 61
3.12.10 赋值运算符 61
3.12.11 new运算符 62
3.12.12 typeof运算符 62
3.12.13 checked和unchecked运算符 62
3.13 表达式 62
3.13.1 表达式的分类 63
3.13.2 基本表达式 63
3.13.3 常量表达式 65
3.13.4 布尔表达式 65
3.13.5 查询表达式 65
3.13.6 匿名函数表达式 65
3.14 语句 66
3.14.1 结束点和可到达性 66
3.14.2 空语句 66
3.14.3 块 66
3.14.4 标记语句 67
3.14.5 声明语句 67
3.14.6 表达式语句 67
3.14.7 选择语句 68
3.14.8 迭代语句 68
3.14.9 跳转语句 69
3.14.10 try语句 70
3.14.11 checked语句和unchecked语句 70
3.14.12 lock语句 70
3.14.13 using语句 71
3.14.14 yield语句 71
3.15 接口 71
3.15.1 接口声明 71
3.15.2 接口成员 71
3.15.3 完全限定接口成员名 72
3.15.4 接口实现 72
3.16 委托 72
3.16.1 委托声明 72
3.16.2 委托兼容性 72
3.16.3 委托实例化 73
3.16.4 委托调用 73
3.17 异常 73
3.17.1 导致异常的原因 73
3.17.2 System. Exception类 73
3.17.3 异常的处理方式 74
3.17.4 公共异常类 74
3.18 属性 75
3.18.1 属性类 75
3.18.2 属性说明 76
3.18.3 属性实例 76
3.18.4 保留属性 76
3.18.5 交互操作的属性 76
第4章 C#程序开发入门 78
4.1 一个简单的C#程序示例 78
4.1.1 注释语句 78
4.1.2 命名空间 79
4.1.3 类 79
4.1.4 Main()方法 79
4.1.5 输入和输出 80
4.1.6 其他说明 81
4.2 类与对象、方法、事件 81
4.2.1 类与对象 81
4.2.2 创建和调用方法 82
4.2.3 理解事件 84
4.3 数据类型、常量、变量和数组 87
4.3.1 数据类型 87
4.3.2 定义和使用常量 89
4.3.3 声明和引用变量 89
4.3.4 使用数组 90
4.4 创建项目/解决方案 91
4.4.1 项目和方案 91
4.4.2 项目类型和应用模板 92
4.4.3 文件模板 95
4.5 编译与调试 96
4.5.1 编辑源代码 96
4.5.2 设置框架 98
4.5.3 编译与运行 98
4.5.4 调试过程中的问题处理 99
4.6 制作与发布 100
4.6.1 制作发布应用程序 100
4.6.2 安装与卸载应用程序 107
第5章 C#程序开发技术 110
5.1 创建用户界面 110
5.1.1 窗体设计方法 110
5.1.2 常用控件使用方法 115
5.1.3 创建多文档界面 124
5.2 菜单设计技术 128
5.2.1 菜单设计方法 128
5.2.2 菜单编辑方法 134
5.2.3 上下文菜单 134
5.3 工具栏开发技术 138
5.3.1 创建工具栏方法 138
5.3.2 创建状态栏方法 147
5.3.3 显示进度条方法 151
5.4 对话框使用方法 155
5.4.1 选择文件对话框 155
5.4.2 保存文件对话框 156
5.4.3 选择字体对话框 157
5.4.4 选择颜色对话框 158
5.4.5 游览文件夹对话框 159
5.4.6 显示消息对话框 162
5.5 注册表操作技术 164
5.5.1 Windows注册表结构 164
5.5.2 创建与删除注册表键 165
5.5.3 设置与获取注册表键值 166
5.5.4 操作注册表示例 166
5.6 鼠标与键盘操作技术 170
5.6.1 常见的鼠标事件 170
5.6.2 操作鼠标事件示例 170
5.6.3 常见的键盘事件 174
5.6.4 操作键盘事件示例 175
5.7 提取硬件参数技术 178
5.7.1 C#获取CPU序列号 179
5.7.2 C#获取硬盘序列号 182
5.7.3 C#获取网卡物理地址 185
5.7.4 C#获取其他硬件信息 187
5.8 自定义函数类 191
5.8.1 获得当前日期 191
5.8.2 获得当前时间 191
5.8.3 以时间为种子生成随机数 192
5.8.4 删除字符后的空格 192
第6章 文件与文件夹操作技术 193
6.1 文件基本操作 193
6.1.1 判断文件是否存在 193
6.1.2 复制与删除文件 193
6.1.3 移动与重命名文件 193
6.2 读写文件技术 194
6.2.1 读写文本文件方法 195
6.2.2 读写文本文件示例 197
6.2.3 读写二进制文件技术 201
6.3 遍历查找文件 205
6.3.1 获取指定目录下的文件和子目录 205
6.3.2 遍历指定目录下的某类型文件 205
6.3.3 遍历指定文件夹下的所有文件 207
6.4 创建目录方法 208
6.4.1 判断目录是否存在 208
6.4.2 创建目录与子目录 208
6.4.3 获取当前工作目录 209
6.5 文件夹操作技术 210
6.5.1 复制文件夹及文件 210
6.5.2 递归删除文件夹方法 212
6.6 PDF文件操作技术 214
6.6.1 下载安装PDF控件 214
6.6.2 创建PDF文件方法 216
6.6.3 插入文字和图片方法 221
6.6.4 读取PDF文件方法 223
第7章 图形与图像处理技术 228
7.1 绘图基础知识 228
7.1.1 定义绘图坐标系 228
7.1.2 创建画布 228
7.1.3 创建画笔与画刷 229
7.1.4 使用系统颜色 230
7.2 简单绘图示例 230
7.2.1 新建窗体应用程序 230
7.2.2 创建画布、画笔、画刷和字体 231
7.2.3 绘制几何图形与文字 232
7.2.4 编译并运行程序 232
7.3 高级绘图技术 234
7.3.1 绘制与保存位图方法 234
7.3.2 双缓冲绘图技术 238
7.3.3 图片反色、浮雕、黑白、柔化、锐化、雾化处理 240
7.4 打印输出技术 254
7.4.1 打印图形方法 254
7.4.2 打印表格方法 259
7.5 制作条形码与二维码技术 265
7.5.1 条形码与二维码简介 265
7.5.2 具体操作步骤 266
7.5.3 编译与运行 271
7.5.4 全部源代码清单 273
第8章 动态链接库文件操作技术 281
8.1 动态链接库(DLL)文件简介 281
8.1.1 什么是DLL文件 281
8.1.2 Visual C++开发DLL文件 281
8.1.3 Visual C#开发DLL文件 281
8.2 用VS2005开发与调用C++DLL文件 282
8.2.1 用VS2005开发C++DLL示例 282
8.2.2 用VS2005调用C++DLL示例 291
8.3 用VS2012开发与调用C#DLL文件 298
8.3.1 用VS2012开发C#DLL示例 298
8.3.2 用VS2012调用C#DLL示例 302
第9章 Office 2003文档操作技术 312
9.1 操作Excel 2003技术 313
9.1.1 新建窗体应用程序 313
9.1.2 添加引用 313
9.1.3 添加执行代码 313
9.1.4 编译与运行 316
9.1.5 全部源代码 317
9.2 操作Word 2003技术 320
9.2.1 新建窗体应用程序 320
9.2.2 添加引用 320
9.2.3 添加执行代码 322
9.2.4 编译与运行 324
9.2.5 全部源代码 325
9.3 操作PowerPoint 2003技术 327
9.3.1 新建窗体应用程序 327
9.3.2 添加引用 327
9.3.3 添加执行代码 329
9.3.4 编译与运行 331
9.3.5 全部源代码 332
第10章 常用数据库操作技术 334
10.1 操作ACCESS数据库方法 334
10.1.1 新建窗体应用程序 334
10.1.2 创建、添加、查询、修改、删除 338
10.1.3 编译与运行 339
10.1.4 全部源代码 342
10.2 操作SQL Server数据库方法 347
10.2.1 新建窗体应用程序 348
10.2.2 创建、添加、查询、修改、删除 349
10.2.3 编译与运行 349
10.2.4 全部源代码 352
10.3 操作SQLite数据库方法 358
10.3.1 下载SQLite.dll组件 358
10.3.2 新建窗体应用程序 359
10.3.3 创建、添加、查询、修改、删除 364
10.3.4 编译与运行 365
10.3.5 全部源代码 368
10.4 操作MySQL数据库方法 377
10.4.1 安装MySQL数据库 378
10.4.2 下载MySql.Data.dll组件 380
10.4.3 新建窗体应用程序 380
10.4.4 创建、添加、查询、修改、删除 383
10.4.5 编译与运行 384
10.4.6 全部源代码 387
第11章 基于ActiveX技术CAD二次开发 392
11.1 ActiveX Automation开发技术 392
11.1.1 ActiveX Automation简介 392
11.1.2 AutoCAD二次开发工具 393
11.1.3 AutoCAD二次开发入门 394
11.2 AutoCAD二次开发示例 399
11.2.1 新建CAD文件 400
11.2.2 绘制点、线、圆、文字 400
11.2.3 保存与关闭 402
11.2.4 编译与运行 404
11.2.5 全部源代码 404
11.3 与用户交互操作技术 407
11.3.1 常用CAD图形对象 407
11.3.2 新建窗体应用程序 409
11.3.3 编译与运行 410
11.3.4 全部源代码 411
第12章 基于AutoCAD.NET平台CAD二次开发 414
12.1 AutoCAD.NET开发基础 414
12.1.1 AutoCAD.NET基础知识 414
12.1.2 AutoCAD.NET API的组件 414
12.1.3 AutoCAD版本与依赖的.NET框架 415
12.2 AutoCAD二次开发入门 415
12.2.1 新建类库 415
12.2.2 绘制点、线、圆、文字 418
12.2.3 编译与运行 426
12.2.4 全部源代码 427
12.3 AutoCAD二次开发技术 432
12.3.1 创建实体方法 432
12.3.2 创建新图层方法 434
12.3.3 修改实体颜色 436
12.3.4 修改实体坐标值 438
12.4 制作面板、菜单、对话框技术 441
12.4.1 自定义面板方法 441
12.4.2 制作上下文菜单 445
12.4.3 显示模式窗体方法 449
12.4.4 与用户交互操作技术 454
第13章 C#软件加密与破解技术 460
13.1 数据加密与解密技术 460
13.1.1 加密与解密 460
13.1.2 对称加密 460
13.1.3 非对称加密 464
13.1.4 数据摘要算法 467
13.2 .NET源码加密技术 468
13.2.1 .NET程序编译原理 468
13.2.2 .NET软件破解方法 468
13.2.3 .NET编程保护方案 469
13.3 加壳与脱壳技术 470
13.3.1 .NET混淆、反编译工具 470
13.3.2 .NET Reactor软件加壳方法 471
13.3.3 .NET程序脱壳过程 474
第14章 C#软件开发经验与技巧 476
14.1 .NET Framework SDK开发工具 476
14.1.1 .NET Framework SDK介绍 476
14.1.2 C#文件名后缀含义详解 477
14.1.3 C#的编译方法与过程 477
14.2 C#常见异常处理方法 479
14.2.1 C#的异常处理机制 479
14.2.2 C#常见异常类型 480
14.2.3 C#自定义异常类 481
14.3 .NET框架与软件安装问题 481
14.3.1 .NET框架版本依赖关系 481
14.3.2 .NET框架版本获取方法 484
14.3.3 .NET常见开发问题汇总 487
参考文献 490