第1章 C#快速入门 1
1.1 C#简介 1
1.1.1 简单性(Simplicity)——C#与C++简单性的比较 2
1.1.2 一致性(Consistency)——C#与C++一致性的比较 3
1.1.3 全新化——C#相对于C++ Java全新在哪里 5
1.1.4 面向对象(Object Oriented)——C#对C++的扬弃 6
1.1.5 类型安全——C#数组的应用 7
1.1.7 版本支持(Version Support)——名称空间的应用 9
1.1.6 可伸缩性(Scalability)——C#对编译器的改进 9
1.1.8 兼容性(Compatibility)——动态链接库和COM的应用 10
1.1.9 灵活性(Flexibility)——C#对本机代码的支持 11
1.2 从C++到C# 12
1.2.1 本机环境到托管环境的移植 12
1.2.2 常见的语法陷阱 13
1.2.3 引用类型和值类型 13
1.2.4 结构 13
1.2.5 对象的派生——类成员函数的重载举例 13
1.2.7 new的使用——对象初始化举例 15
1.2.6 引用参数和输出参数的比较 15
1.2.8 属性(Property)的应用举例 16
1.2.9 数组 17
1.2.10 索引(Index)的应用举例 18
1.2.11 接口 20
1.2.12 IEnumerable接口的应用举例 20
1.2.13 基类类库的使用——异步IO应用举例 22
2.1 创建控件 25
2.1.1 创建的具体步骤及代码 25
第2章 C#控件的创建 25
2.1.2 控件的使用和测试 28
2.2 使用.NET SDK创建一个时钟控件 28
2.3 渐变色控件的创建 33
第3章 按钮控件的创建 38
3.1 AutoRepeat按扭的实现 38
3.2 使用.NET SDK创建位图按钮 41
3.3 LED风格的按钮的实现(一) 42
3.4 LED风格的按钮的实现(二) 44
第4章 列表框和下拉列表框的创建 49
4.1 大小自动变化的列表框的创建 49
4.2 Visual Studio.NET风格的平面下拉列表框的创建 51
4.3 C#颜色列表框的创建 55
4.4 驱动器下拉列表框的创建 57
4.5 平面的驱动器下拉列表框的创建 64
4.6 多列列表框的创建 65
4.7 图标列表框的创建 67
4.8 自绘的下拉列表框的创建 70
4.9 服务器下拉列表框的创建 71
4.10 URL下拉列表框的创建 73
4.11 带有提示文本框的列表框的创建 74
第5章 文本编辑框控件的创建 77
5.1 实现有效检查功能的文本框 77
5.2 具有掩码的文本框控件的实现 80
5.3 背景颜色高亮显示的RichTextBox控件的创建 83
第6章 列表视图和树视图的创建 85
6.1 C#排序列表视图的创建 85
6.2 自绘树显示列表的实现 88
6.3 基于TreeView的属性树控件的实现 92
6.4 XP风格的收缩面板控件的实现 93
7.1 Visual Studio.NET风格的工具栏的实现 95
第7章 菜单和工具栏控件的创建 95
7.2 C# ReBar控件的实现 97
7.3 ToolBar接口扩展举例 98
7.4 Visual Studio.NET风格的菜单的实现 101
7.5 状态栏信息的接口扩展举例 104
7.6 可拖动和缩放的停泊控件的实现 106
7.7 .NET风格的SideTab控件的实现 116
第8章 选择控件的创建 117
8.1 Visual Studio.NET风格的颜色拾取控件的实现 117
8.2 颜色拾取控件的实现 118
8.3 RangeBar控件的实现 121
8.4 文件夹浏览组件的实现 123
8.5 浏览文件夹对话框应用举例 126
8.6 使用Form控件创建文件夹选择对话框 129
第9章 Tab和属性页的创建 133
9.1 Windows XP外观的Tab Page控件的创建 133
9.2 可拖放的Tab控件的实现 137
第10章 杂项控件的创建 142
10.1 增强进度条控件的创建 142
10.2 Outlook Bar控件的创建 144
10.3 具有平面外观和活动状态的平面控件的创建 146
10.4 仅绘制标题的GroupBox控件的实现 150
10.5 带有进度条的DataGrid控件的实现 151
10.6 支持气球提示的任务状态栏控件的创建 154
10.7 Delphi风格的事件列表控件的实现 163
10.8 语言国际化的属性网格控件的实现 166
10.9 进度对话框应用举例 171
10.10 以ActiveX控件方式使用Windows Form 173
10.11 工具栏提示的添加举例 177
10.12 使用不同的透明度实现异形窗口 177
10.13 “换肤”技术的实现 178
10.14 Timer组件的应用举例 179
10.15 高精度定时的实现 180
10.16 改变DataGrid单元的颜色 182
10.17 气球窗口提示框的实现 184
第11章 多媒体和GDI+程序的开发 187
11.1 使用Windows媒体播放器实现声音特效 187
11.2 使用C#实现的DirectShow媒体播放器 190
11.3 避免C#绘图时的屏幕闪烁 195
11.4 克服Graphics.MessureString的局限性 198
11.5 使用Reflection产生完整的颜色列表图 199
11.6 图像格式的转换举例 200
11.7 使用GDI+实现像素的Alpha融合 201
11.8 在控制台应用程序中输出彩色文字 207
第12章 数据库和ADO.NET的应用 210
12.1 基于SQL Server的相册查看器的实现 210
12.2 使用COM互操作实现ADO数据存取 214
12.3 使用C#实现读取、插入、修改和删除数据库 217
12.4 Access数据库编辑器的实现 220
13.1 拖放操作和剪贴板查看器的实现 223
第13章 杂类编程 223
13.2 .NET的剪贴板操作举例 226
13.3 工作者线程应用举例 229
13.4 使用事件实现线程的同步 232
13.5 在C#中使用指针 237
13.6 枚举和结构的应用举例 240
13.7 事件和事件处理的应用 243
13.8 继承和多态的应用举例 246
第14章 COM互操作性编程 251
14.1 使用MSHTML高级寄主(Host)接口 251
14.2 在C#程序中应用WebBrowser控件 253
14.3 在托管环境下使用MSAgent控件 255
14.4 读写INI的文件 259
14.5 C#实现Shell扩展举例 260
14.6 命令提示的Explorer Bar的实现 266
14.7 本机动态链接库的后期绑定应用举例 284
14.8 在C#程序中捕获IE的实例 287
14.9 使用C#创建Excel电子表格 289
第15章 网络编程 291
15.1 FTP组件的实现 291
15.2 网络监听程序的实现 294
15.3 SNTP客户端的实现 300
15.4 基于HTTP协议的在线拼写检查的实现 302
15.5 异步的Socket通信的实现 304
15.6 基于TCP协议客户端/服务器编程举例 310
15.7 基于Pop3协议收取E-mail的实现 312
15.8 使用SMTP协议发送邮件 315
15.9 MAPI函数的使用 317
15.10 创建自己的Web服务器 319
15.11 实时的TCP/IP协议的实现 327
15.12 使用C#发送有附件的E-mail 332
15.13 获得主机的IP地址 333
第16章 系统编程 335
16.1 读写二进制文件 335
16.2 监视文件系统的修改 336
16.3 汇编语言在C#中的应用举例 337
16.4 C#管理Windows NT服务 341
16.5 使用SHGetFileInfo取得文件或文件夹图标 345
16.6 C#实现屏幕保护程序 347
16.7 注册编辑表的存取举例 349
16.8 文件分割程序的实现 352
16.9 从头创建Windows NT服务 356
第17章 XML和Web Service 362
17.1 XML目录列表创建举例 362
17.2 HTML解析器的实现 366
17.3 从XML资源文件中存取二进制数据 370
17.4 XML客户端提供者的实现 373
17.5 INI文件到XML文件转换的实现 373
17.6 从头创建C# Web Service程序 377
17.7 Google Web Service客户端程序的实现 381