c#编程实战宝典 付强_C#编程实战宝典

第1篇 开发环境及C#语言简介

第1章 Visual Studio 2010介绍( 教学视频:31分钟)2

1.1 .NET概述2

1.1.1 .NET的前世今生2

1.1.2 什么是微软中间语言3

1.1.3 背后默默付出的垃圾收集器4

1.2 .NET Framework 概述5

1.2.1 .NET Framework包含什么5

1.2.2 .NET平台的核心:CLR7

1.2.3 基类库是神马7

1.2.4 公共语言运行规范9

1.3 Visual Studio 2010有哪些新增功能9

1.4 Visual Studio 2010开发环境介绍11

1.4.1 安装Visual Studio 201011

1.4.2 Visual Studio 2010提供哪些项目模板13

1.4.3 Visual Studio 2010提供哪些网站模板15

1.4.4 Visual Studio 2010提供哪些文件模板15

1.4.5 与Visual Studio 2010的第一次相会16

1.4.6 必须熟悉的开发工具栏和菜单栏17

1.4.7 用对象浏览器查看对象信息20

1.4.8 可视化利器:工具箱和属性窗口21

1.5 定制环境23

1.5.1 让字体和颜色更适合自己23

1.5.2 在项目和解决方案中保存文件23

1.5.3 使用任务列表和注释管理代码24

1.5.4 在命令窗口中执行命令24

1.5.5 代码显示行号与代码折叠26

1.5.6 管理Visual Studio 2010中的子窗口27

1.5.7 调试与生成程序28

1.6 学会使用MSDN帮助系统30

1.7 用Visual Studio 2010编写第一个程序31

1.8 本章总结33

1.9 实战练习34

第2章 C#简介( 教学视频:16分钟)35

2.1 C#与.NET的关系35

2.2 C#有哪些特点35

2.2.1 简单性36

2.2.2 类型统一性38

2.2.3 面向对象性39

2.2.4 类型安全性40

2.2.5 兼容性41

2.3 C#与其他语言对比41

2.4 C#与VB.NET的异同42

2.4.1 代码表现形式的差异42

2.4.2 数据类型和变量使用的差异43

2.4.3 类、数据类型、函数以及接口44

2.4.4 操作符与表达式的差异44

2.4.5 控制流程语句的差异45

2.4.6 错误处理的差异47

2.4.7 关键字的差异47

2.4.8 访问修饰符的差异47

2.4.9 语法的差异48

2.4.10 C#与VB.NET实例对比48

2.5 C#与C++的异同51

2.5.1 托管环境的差异51

2.5.2 C#使用.NET的对象52

2.5.3 C#的语句52

2.5.4 C#中取消的要素52

2.5.5 操作符重载的差异52

2.5.6 头文件的差异53

2.5.7 程序书写的差异53

2.5.8 被取消的指针53

2.5.9 虚函数的差异53

2.5.10 C#与C++实例对比55

2.6 C#与Java的异同56

2.6.1 数据类型的差异56

2.6.2 类的差异57

2.6.3 属性定义的差异58

2.6.4 事件、指针与界面的差异59

2.6.5 C#与Java实例对比59

2.7 本章总结60

2.8 实战练习61

第2篇 C#程序设计基础

第3章 C#数据类型( 教学视频:37分钟)64

3.1 初识C#的数据类型64

3.2 存储实际数据的值类型65

3.2.1 什么是值类型65

3.2.2 整型66

3.2.3 字符型67

3.2.4 浮点型68

3.2.5 小数型69

3.2.6 大整数型69

3.2.7 复数型70

3.2.8 布尔型71

3.2.9 C#值类型的数值类型71

3.3 存储引用地址的引用类型72

3.3.1 什么是引用类型72

3.3.2 类类型72

3.3.3 对象类型73

3.3.4 字符串类型73

3.3.5 接口类型75

3.3.6 dynamic类型76

3.4 数据类型是可以转换的78

3.4.1 什么时候发生类型转换78

3.4.2 显式转换78

3.4.3 隐式转换79

3.4.4 不同数值类型之间的转换79

3.4.5 数值类型和字符串之间的转换80

3.4.6 字符的ASCII码和Unicode码之间的转换82

3.4.7 字符串和字符数组之间的转换84

3.4.8 字符串和字节数组之间的转换85

3.4.9 数值类型和字节数组之间的转换86

3.4.10 不同类型之间的强制转换87

3.5 C#的用户自定义数据类型88

3.5.1 认识枚举类型88

3.5.2 枚举编程示例89

3.5.3 认识结构类型90

3.5.4 结构编程示例90

3.5.5 结构也支持方法92

3.5.6 结构与类有什么不同93

3.5.7 哪些地方应使用结构类型94

3.6 本章总结94

3.7 实战练习94

第4章 变量与表达式( 教学视频:42分钟)96

4.1 常量与变量96

4.1.1 什么是常量96

4.1.2 静态常量的特点96

4.1.3 动态常量的特点97

4.1.4 该用静态常量还是动态常量97

4.1.5 什么是变量98

4.1.6 认识变量的实质99

4.1.7 变量有哪些种类100

4.1.8 怎样给变量命名102

4.2 连接的桥梁——运算符与表达式102

4.2.1 C#的运算符分类102

4.2.2 算术运算符103

4.2.3 关系运算符105

4.2.4 一般赋值运算符106

4.2.5 复合赋值运算符107

4.2.6 逻辑运算符109

4.2.7 复习二进制知识112

4.2.8 二进制的位运算符113

4.2.9 有逻辑判断功能的三元运算符115

4.2.10 自增和自减运算符116

4.2.11 应该先进行什么运算117

4.3 关键字118

4.4 本章总结119

4.5 实战练习119

第5章 程序控制语言( 教学视频:46分钟)120

5.1 C#有哪些种类的语句120

5.2 选择语句让程序具有智能121

5.2.1 选择语句的作用121

5.2.2 认识if语句121

5.2.3 单分支if语句122

5.2.4 二分支if语句123

5.2.5 多分支if语句124

5.2.6 if语句多层嵌套125

5.2.7 switch多分支选择语句127

5.2.8 switch语句编程示例128

5.3 用循环语句进行重复劳动129

5.3.1 do循环语句129

5.3.2 while循环语句130

5.3.3 for循环语句131

5.3.4 foreach循环语句133

5.4 用跳转语句改变程序流程134

5.4.1 用break语句跳出循环134

5.4.2 用continue语句进入下次循环135

5.4.3 用return语句返回136

5.4.4 用goto语句跳到指定行137

5.4.5 用goto语句跳出switch语句138

5.4.6 用goto语句跳出一层嵌套循环139

5.4.7 用throw语句抛出异常141

5.5 用注释语句让代码意图更明了142

5.5.1 普通注释语句142

5.5.2 可生成帮助文档的注释语句143

5.6 本章总结146

5.7 实战练习146

第6章 函数与方法( 教学视频:38分钟)147

6.1 函数是C#的基本结构147

6.1.1 函数与方法147

6.1.2 无参和有参函数147

6.2 函数的必备件:参数与返回值148

6.2.1 参数有什么用148

6.2.2 值参数的使用148

6.2.3 引用参数的使用149

6.2.4 输出参数的使用152

6.2.5 数组参数的使用153

6.2.6 命名参数和可选参数154

6.2.7 利用返回值获取数值156

6.2.8 利用返回值判断逻辑157

6.3 变量的作用域159

6.3.1 最常见的局部变量159

6.3.2 需要惧用的全局变量160

6.4 认识主入口函数Main()161

6.5 C#中最常用的函数165

6.6 本章总结166

6.7 实战练习166

第3篇 C#面向对象编程简介

第7章 类和对象( 教学视频:33分钟)170

7.1 类和对象的关系170

7.2 类的定义171

7.2.1 创建一个类171

7.2.2 类成员的访问类型173

7.2.3 创建类的成员方法174

7.3 创建对象175

7.3.1 类的构造函数有什么用175

7.3.2 成员变量的初始化177

7.3.3 创建类的拷贝构造函数179

7.3.4 用关键字this引用当前对象179

7.4 静态成员的使用180

7.4.1 什么是类的静态成员180

7.4.2 静态方法怎样调用181

7.4.3 静态构造函数的优势182

7.4.4 使用私有构造函数保护静态成员182

7.4.5 使用静态成员变量计录对象数量183

7.5 对象的销毁184

7.5.1 C#的析构函数184

7.5.2 用Dispose()方法释放资源185

7.5.3 用using声明作用范围185

7.6 参数传递186

7.6.1 通过引用传递返回多个值186

7.6.2 用out类型参数返回值189

7.7 重写方法和构造函数让类更宜用191

7.8 用属性封装类的数据193

7.8.1 类的属性定义193

7.8.2 用get访问器返回属性值195

7.8.3 用set访问器设置属性值196

7.9 用Readonly类型变量为类设置不变的值196

7.10 本章总结198

7.11 实战练习199

第8章 继承与多态( 教学视频:39分钟)200

8.1 用继承对类进行扩展200

8.1.1 面向对象程序中的继承200

8.1.2 C#的继承机制201

8.1.3 继承是怎样调用构造函数205

8.1.4 用base关键字调用基类构造函数206

8.1.5 使用protected访问类型208

8.1.6 用sealed关键字终止继承209

8.2 万类之根——Object类210

8.3 C#类的多态特性212

8.3.1 什么是多态212

8.3.2 在基类与子类中定义同名方法213

8.3.3 方法重写——virtual和override关键字的使用214

8.3.4 用new关键字指出重写方法216

8.4 对象类型转换——Up-casting和Down-casting217

8.4.1 子类到基数的Up-casting类型转换217

8.4.2 基数到子类的Down-casting类型转换217

8.4.3 用is和as关键字做对象类型检查218

8.5 装箱和拆箱219

8.6 本章总结219

8.7 实战练习220

第9章 抽象类和接口( 教学视频:24分钟)221

9.1 定义抽象类221

9.2 定义统一规划的接口224

9.2.1 定义接口224

9.2.2 一个类实现多个接口227

9.2.3 实现多接口同名方法229

9.2.4 使用is和as操作符实现接口转换231

9.2.5 接口间能继承吗232

9.3 本章总结234

9.4 实战练习234

第10章 数组与集合( 教学视频:38分钟)235

10.1 数组的数组——多维数组235

10.1.1 认识多维数组235

10.1.2 怎样实例化多维数组236

10.1.3 什么是变长数组238

10.2 用foreach循环进行数组的遍历240

10.3 比数组灵活好用的集合243

10.3.1 用ArrayList集合保存不同类型数据244

10.3.2 用Stack集合处理栈246

10.3.3 用Queue集合处理队列248

10.4 键-值对应形式的字典类型集合249

10.4.1 Hashtable类存储方式250

10.4.2 创建Hashtable集合的方法250

10.4.3 用Add方法向Hashtable集合中添加元素250

10.4.4 从Hashtable集合中获取元素的方法251

10.4.5 用Remove方法移除Hashtable集合中的元素251

10.4.6 获取Hashtable集合的元素与键值252

10.4.7 在Hashtable集合中检索元素253

10.4.8 SortedList类与Hashtable类的区别253

10.4.9 SortedList类常用方法253

10.5 本章总结255

10.6 实战练习256

第11章 代理和事件( 教学视频:31分钟)257

11.1 代理257

11.1.1 什么是代理257

11.1.2 代理所指向方法的类型和标识258

11.1.3 代理引用的声明和使用258

11.1.4 .NET Framework中的代理262

11.1.5 代理用作方法的参数262

11.1.6 了解多重代理264

11.1.7 多重代理的实现方法264

11.1.8 怎样移除多重代理指向的方法266

11.2 事件和事件处理267

11.2.1 C#的事件处理267

11.2.2 事件举例——时钟事件268

11.2.3 多重事件的处理270

11.2.4 利用事件传递数据271

11.3 本章总结274

11.4 实战练习275

第4篇 Windows程序设计

第12章 Windows应用程序概述( 教学视频:29分钟)278

12.1 Windows应用程序278

12.1.1 什么是Windows应用程序278

12.1.2 创建Windows应用程序278

12.1.3 程序入口文件Program.cs279

12.1.4 窗口程序文件Form1.cs279

12.1.5 窗口设计文件Form1.Designer.cs280

12.2 Windows应用程序窗体281

12.2.1 C#的Form类281

12.2.2 Form类常用属性281

12.2.3 Form类常用事件282

12.3 为窗体添加控件283

12.3.1 Windows窗体控件283

12.3.2 控件常见属性284

12.3.3 控件常用公共事件284

12.3.4 向窗体添加控件的方法285

12.3.5 调整控件的布局285

12.4 Windows应用程序编程示例287

12.4.1 创建一个窗体287

12.4.2 用属性控制窗体外观287

12.4.3 向窗体添加控件288

12.4.4 添加控件事件处理程序288

12.4.5 查看窗体运行效果288

12.5 本章总结289

12.6 实战练习289

第13章 Visual Studio 2010控件介绍( 教学视频:39分钟)290

13.1 接收输入的文本编辑控件290

13.1.1 TextBox控件的作用290

13.1.2 怎样获取或设置TextBox控件的内容291

13.1.3 TextBox控件也可输入多行文本292

13.1.4 选择TextBox控件中的文本293

13.1.5 设置Textbox控件为密码框294

13.1.6 检查TextBox控件的输入值295

13.1.7 支持格式化的RichTextBox控件295

13.1.8 选择RichTextBox控件中的文本296

13.1.9 在RichTextBox控件中撤销上次操作297

13.1.10 拖放RichTextBox控件中的文本298

13.1.11 设置RichTextBox控件中的文本格式299

13.1.12 设置RichTextBox控件的文本缩进300

13.1.13 在RichTextBox控件中添加超链接302

13.1.14 RichTextBox控件的文件操作302

13.2 不能编辑的文本显示控件304

13.2.1 用Label控件显示文本304

13.2.2 用LinkLabel控件显示超链接文本305

13.2.3 保存超链接的LinkCollection集合307

13.2.4 LinkLabel控件编程示例307

13.3 包容其他控件的容器控件309

13.3.1 用Panel控件细分窗体309

13.3.2 有标题的容器控件GroupBox312

13.3.3 多页容器控件TabControl313

13.3.4 TabControl控件的几种常见外观314

13.3.5 TabControl控件中标签页的选择316

13.3.6 添加TabControl控件中的标签页318

13.3.7 网格形式容器控件TableLayoutPanel320

13.3.8 设置TableLayoutPanel控件的外观321

13.3.9 添加控件到TableLayoutPanel控件323

13.4 值设置控件325

13.4.1 用CheckBox控件选择打开或关闭状态325

13.4.2 用RadioButton控件进行多选一操作328

13.5 本章总结329

13.6 实战练习329

第14章 列表选择控件介绍( 教学视频:43分钟)330

14.1 ListBox控件330

14.1.1 用ListBox显示列表330

14.1.2 用ListBox添加列表项330

14.1.3 设置ListBox的行为332

14.1.4 让ListBox支持多选334

14.1.5 设置ListBox的外观336

14.1.6 对ListBox列表进行排序337

14.1.7 控制ListBox列表项的刷新337

14.1.8 查找ListBox中的列表338

14.1.9 ListBox控件的常用方法340

14.2 ComboBox控件342

14.2.1 认识ComboBox控件342

14.2.2 设置ComboBox下拉样式342

14.2.3 设置ComboBox的自动补齐344

14.2.4 ComboBox自动补齐的数据源344

14.2.5 设置ComboBox自动补齐方式347

14.2.6 ComboBox的常见事件348

14.2.7 修改ComboBox的子项349

14.2.8 ComboBox的子项绘制350

14.3 CheckedListBox控件353

14.3.1 带复选标记的列表控件CheckedListBox353

14.3.2 CheckedListBox控件编程示例355

14.4 ListView控件359

14.4.1 带图标的列表控件ListView359

14.4.2 ListView的5种视图360

14.4.3 使用任务窗体设置ListView361

14.4.4 用ImageList给ListView提供图标362

14.4.5 设置ListView的子项364

14.4.6 设置Details视图模式的数据365

14.4.7 给ListView添加分组设置367

14.4.8 让ListView支持拖曳操作368

14.4.9 在ListView中进行搜索370

14.5 TreeView控件371

14.5.1 用TreeView控件显示分层数据371

14.5.2 添加节点到TreeView372

14.5.3 在节点前显示复选框374

14.5.4 选中节点的常用约定376

14.5.5 用ImageList为TreeView提供图标376

14.5.6 展开与折叠TreeView的节点377

14.5.7 允许编辑TreeView的节点文本379

14.5.8 让TreeView支持拖曳操作380

14.6 本章总结383

14.7 实战练习383

第15章 数据显示控件( 教学视频:27分钟)384

15.1 DataGridView控件以表格显示数据384

15.1.1 DataGridView有哪些功能384

15.1.2 设置对表格数据的操作385

15.1.3 在窗体中如何放置DataGridView388

15.1.4 为DataGridView提供数据389

15.1.5 向DataGridView添加列389

15.1.6 冻结DataGridView中的列390

15.1.7 编辑DataGridView中的列391

15.2 为DataGridView服务的类392

15.2.1 DataGridViewElement对象模型392

15.2.2 单元格对象模型DataGridViewCell393

15.2.3 数据列对象模型DataGridViewColumn394

15.2.4 数据行对象模型DataGridViewRow394

15.3 设置DataGridView的格式395

15.3.1 设置单元格边框样式395

15.3.2 设置DataGridView控件边框样式396

15.3.3 设置单元格边框样式397

15.3.4 设置左上角单元格边框样式398

15.3.5 设置单元格样式399

15.3.6 单元格样式设置的优先级402

15.3.7 设置DataGridView外观404

15.3.8 用属性设置可对表格的操作404

15.3.9 DataGridView其他常用属性405

15.3.10 用AutoResizeColumn方法调列宽407

15.3.11 用AutoResizeColumns方法调整所有列宽409

15.3.12 用AutoResizeColumnHeadersHeight方法调整列标题高度410

15.3.13 用AutoResizeRowHeadersWidth方法调整行标题宽度411

15.3.14 DataGridView其他常用方法412

15.4 DataGridView中显示数据的相关类413

15.4.1 设置数据排序模式413

15.4.2 用DataGridViewTextBoxColumn显示文本数据列413

15.4.3 用DataGridViewCheckBoxColumn显示二元状态数据列415

15.4.4 用DataGridViewImageColumn显示图像数据列416

15.4.5 用DataGridViewButtonColumn显示按钮数据列418

15.4.6 用DataGridViewComboBoxColumn显示下拉列表数据列419

15.4.7 用DataGridViewLinkColumn显示超链接数据列421

15.5 本章总结423

15.6 实战练习423

第16章 通用对话框( 教学视频:40分钟)424

16.1 消息对话框424

16.1.1 用消息对话框显示信息424

16.1.2 该怎样显示消息对话框425

16.1.3 消息对话框能显示哪些按键426

16.1.4 用户按了哪个按钮427

16.1.5 消息对话框可显示哪些图标429

16.1.6 消息对话框编程示例430

16.2 文件对话框433

16.2.1 认识OpenFileDialog组件433

16.2.2 显示“打开文件”对话框434

16.2.3 打开快捷方式引用的文件434

16.2.4 同时选择多个文件435

16.2.5 设置可打开的文件类型436

16.2.6 设置“打开”文件对话框的外观438

16.2.7 检查指定的文件是否存在440

16.2.8 使用SaveFileDialog组件441

16.2.9 SaveFileDialog组件编程示例442

16.2.10 另存文件时的覆盖与新建444

16.2.11 使用FolderBrowserDialog组件444

16.2.12 FolderBrowserDialog组件编程示例445

16.3 字体选择对话框448

16.3.1 使用FontDialog组件448

16.3.2 FontDialog组件编程示例449

16.4 颜色选择对话框451

16.4.1 使用ColorDialog组件451

16.4.2 ColorDialog组件编程示例452

16.5 打印相关对话框454

16.5.1 使用PrintDocument组件454

16.5.2 PrintDocument组件编程示例454

16.5.3 使用PageSetupDialog组件457

16.5.4 PageSetupDialog组件编程示例458

16.5.5 使用PrintPreviewDialog组件458

16.5.6 PrintPreviewDialog组件编程示例460

16.5.7 使用PrintDialog组件462

16.6 本章总结463

16.7 实战练习464

第17章 其他常用控件( 教学视频:29分钟)465

17.1 计时器组件465

17.1.1 Timer组件有什么用465

17.1.2 用Timer控制程序定时执行466

17.1.3 用Timer制作秒表467

17.1.4 启动和重置Timer469

17.2 图形控件470

17.2.1 用PictureBox控件显示图片470

17.2.2 PictureBox显示图片的5种方式471

17.2.3 更新PictureBox中的图片472

17.2.4 用ImageList存储图片473

17.2.5 哪些控件可用ImageList中的图片474

17.3 菜单控件475

17.3.1 用MenuStrip创建菜单475

17.3.2 有哪些方法添加菜单项476

17.3.3 为菜单项编写代码完成相应功能479

17.3.4 用ToolStrip创建工具栏481

17.3.5 工具栏中可使用的按钮类型482

17.3.6 设置工具栏的外观和行为483

17.3.7 设置ToolStripComboBox的自动完成功能485

17.3.8 设置ToolStrip的外观486

17.3.9 用ContextMenuStrip创建快捷菜单486

17.4 本章总结487

17.5 实战练习487

第18章 Windows应用程序的部署( 教学视频:22分钟)489

18.1 你了解这两种部署方案吗489

18.1.1 什么是ClickOnce部署方案489

18.1.2 什么是Windows Installer部署方案490

18.2 ClickOnce部署490

18.2.1 创建一个部署用的示例程序490

18.2.2 启动“发布向导”的3种方法491

18.2.3 设置发布应用程序的3个URL地址492

18.2.4 为应用程序设置名称494

18.2.5 设置需发布的非代码文件494

18.2.6 为应用程序添加下载组495

18.2.7 设置应用程序的系统必备组件495

18.2.8 设置安装组件的权限496

18.2.9 应用程序的3种发布方式497

18.2.10 将应用程序发布到网站497

18.2.11 将应用程序发布到共享文件夹499

18.2.12 将应用程序发布到CD-ROM500

18.2.13 发布应用程序501

18.2.14 安装发布的应用程序503

18.3 Windows Installer部署504

18.3.1 创建一个部署用的示例程序504

18.3.2 创建部署项目505

18.3.3 设置文件安装到目标机器的位置505

18.3.4 添加项目输出组506

18.3.5 设置安装后的桌面快捷方式507

18.3.6 更改安装应用程序的部署特性508

18.3.7 将应用程序信息添加到注册表509

18.3.8 安装过程中可使用的对话框509

18.3.9 “欢迎使用”用户界面对话框510

18.3.10 “选择安装文件夹”用户界面对话框511

18.3.11 “确认安装”用户界面对话框511

18.3.12 “进度”用户界面对话框512

18.3.13 “安装完成”用户界面对话框512

18.3.14 安装过程中的自定义默认对话框513

18.3.15 “单选按钮”用户界面对话框514

18.3.16 “复选框”用户界面对话框515

18.3.17 “文本框”用户界面对话框516

18.3.18 “客户信息”用户界面对话框517

18.3.19 “许可协议”用户界面对话框517

18.3.20 “自述文件”用户界面对话框518

18.3.21 “注册用户”用户界面对话框518

18.3.22 生成应用程序安装文件519

18.4 比较两种部署方案519

18.5 本章总结520

18.6 实战练习520

第5篇 C#高级编程技术和工具

第19章 异常处理( 教学视频:28分钟)522

19.1 程序运行中的522

19.2 C#和.NET中的异常处理524

19.2.1 使用try…catch…finally结构处理异常524

19.2.2 捕获程序中可能产生的异常526

19.2.3 用finally语段释放资源528

19.3 多异常的捕获530

19.3.1 什么多异常530

19.3.2 异常的继承关系533

19.3.3 捕获所有异常的方法534

19.4 定义用户异常的方法534

19.5 本章总结537

19.6 实战练习537

第20章 文件系统与流( 教学视频:45分钟)538

20.1 软件系统环境相关信息538

20.1.1 用System.Environment类获得应用程序运行环境的信息538

20.1.2 System.Environment类的应用举例538

20.1.3 用Enviroment.GetFolderPath()获得各种Windows标准文件夹的路径540

20.2 对文件进行操作542

20.2.1 C#对文件进行操作的类542

20.2.2 用System.IO.File类的静态方法操作文件542

20.2.3 用System.IO.FileInfo类的方法操作文件544

20.3 对文件夹进行操作545

20.3.1 C#对文件夹操作的类545

20.3.2 用System.IO.Directory类的静态方法操作文件夹545

20.3.3 用System.IO.DirectoryInfo类的方法操作文件夹547

20.4 流文件概述549

20.4.1 了解流549

20.4.2 Stream类的常用方法和属性549

20.5 使用流对文件进行读写550

20.5.1 使用System.IO.FileStream类进行文件读写550

20.5.2 用System.IO.FileStream类打开文本文件551

20.5.3 用BinaryReader和BinaryWriter类读写原始文件553

20.5.4 用StreamReader和StreamWriter类读写文本文件554

20.6 序列化和反序列化554

20.6.1 什么是对象序列化555

20.6.2 用格式器描述被序列化对象555

20.6.3 对象序列化使用示例一555

20.6.4 对象序列化使用示例二558

20.6.5 对象序列化使用示例三560

20.7 异步读取数据562

20.7.1 什么是异步读取数据562

20.7.2 异步读取数据使用示例562

20.8 本章总结564

20.9 实战练习564

第21章 可扩展标记语言( 教学视频:30分钟)565

21.1 认识XML565

21.1.1 文档对象模型的功能566

21.1.2 用XPath查询XML文档567

21.1.3 了解可扩展样式表语言XSL567

21.1.4 用XML Schemas设置数据元素和属性568

21.1.5 .NET中处理XML的相关类568

21.2 使用XML DOM进行编程569

21.2.1 创建一个空的XML文档571

21.2.2 向XML文档添加元素572

21.2.3 更新XML文档中的元素573

21.2.4 删除XML文档中的元素576

21.2.5 加载和保存XML文档577

21.3 用DataSet保存XML数据577

21.3.1 不使用Schema文件加载XML文档580

21.3.2 使用Schema文件加载XML文档582

21.3.3 遍历XML文档584

21.4 用XPath查找节点586

21.4.1 XPath简介586

21.4.2 XPath查询示例代码586

21.4.3 XPath示例代码讲解590

21.5 使用XSL将XML文档转化为另一种格式591

21.5.1 XSL转换示例一591

21.5.2 XSL转换示例讲解595

21.5.3 XSL转换示例二596

21.6 本章总结597

21.7 实战练习597

第22章 多线程编程( 教学视频:27分钟)599

22.1 C#线程的主要特征599

22.1.1 输出不同内容的两个线程599

22.1.2 调用同一方法的两个线程600

22.1.3 静态变量在多线程多线程中的应用601

22.1.4 线程调度603

22.1.5 线程和进程的关系603

22.1.6 何时需要使用多线程603

22.1.7 何时不要使用多线程604

22.2 创建并开始一个线程604

22.2.1 用Thread类创建线程604

22.2.2 向ThreadStart传递参数605

22.2.3 给线程命名607

22.2.4 C#的后台线程607

22.2.5 设置线程优先级608

22.2.6 线程中的异常处理608

22.3 线程同步610

22.3.1 线程同步和协同的可用性工具610

22.3.2 阻止现在的线程611

22.3.3 Joining一个线程612

22.4 线程安全612

22.4.1 了解线程安全612

22.4.2 选择一个同步对象614

22.4.3 使用嵌套锁615

22.4.4 什么时候上锁合适615

22.4.5 使用锁的效率考虑616

22.4.6 线程安全与.NET Framework617

22.5 用中断和取消提前释放线程618

22.5.1 中断线程618

22.5.2 取消线程619

22.6 线程有哪些状态619

22.7 等待处理620

22.7.1 了解自动设置方法621

22.7.2 自动设置方法示例一621

22.7.3 自动设置方法示例二622

22.7.4 自动设置方法示例三623

22.7.5 ManualResetEvent类控制多个线程625

22.7.6 跨线程的互斥量626

22.7.7 使用信号量626

22.7.8 使用WaitAny、WaitAll和SignalAndWait方法627

22.8 同步性作用域628

22.9 套间线程630

22.9.1 什么是套间线程630

22.9.2 使用套间模型631

22.9.3 用Control.Invoke方法进行跨线程调用631

22.10 管理工作线程的BackgroundWorker组件631

22.10.1 BackgroundWorker的特征632

22.10.2 BackgroundWorker组件编程示例一632

22.10.3 BackgroundWorker组件编程示例二633

22.10.4 BackgroundWorker组件编程示例三635

22.11 用于读/写操作的锁636

22.11.1 了解读/写操作的锁636

22.11.2 管理资源访问锁定状态类ReaderWriterLockSlim637

22.11.3 读/写操作锁的进一步说明638

22.12 用线程池管理线程639

22.13 用异步代理得到线程返回的数据641

22.14 .NET提供的计时器642

22.15 各线程数据的局部存储644

22.16 本章总结644

22.17 实战练习645

第6篇 Web数据库开发

第23章 数据库基础知识( 教学视频:15分钟)648

23.1 了解SQL Server648

23.2 操作MSSQL数据表649

23.2.1 在数据库中创建、修改和删除表650

23.2.2 向表中插入、修改、删除和检索数据650

23.2.3 设置表的主键约束653

23.2.4 设置表的外键约束654

23.2.5 设置表的唯一性约束654

23.2.6 设置表的CHECK约束655

23.2.7 设置列的默认约束655

23.3 数据库的存储过程655

23.3.1 创建存储过程的SQL语句656

23.3.2 执行和删除存储过程的SQL语句657

23.3.3 用SQL Server Management Studio管理存储过程657

23.4 数据库中的触发器659

23.4.1 创建和使用触发器的SQL语句659

23.4.2 用SQL Server Management Studio管理触发器660

23.5 本章总结661

23.6 实战练习661

第24章 ADO.NET数据库编程( 教学视频:32分钟)662

24.1 ADO.NET介绍662

24.1.1 ADO.NET是神马662

24.1.2 ADO.NET相关的类和接口663

24.2 DataSet和DataTable类664

24.2.1 表示内存数据表的DataTable类664

24.2.2 创建DataTable的方法666

24.2.3 遍历DataTable中保存的记录669

24.2.4 接受和回滚DataTable的更改670

24.2.5 表示内存数据集合的DataSet类673

24.2.6 使用DataSet类的步骤675

24.2.7 接受和回滚DataSet的更改679

24.3 用ADO.NET访问SQL Server数据库680

24.3.1 ADO.NET访问数据库的步骤680

24.3.2 用SqlConnection连接数据库681

24.3.3 用SqlCommand执行SQL命令684

24.3.4 用SqlDataReader读取数据库记录687

24.3.5 用SqlDataAdapter获取数据库记录689

24.3.6 用SqlDataAdapter更改数据库记录692

24.4 用ADO.NET访问Access数据库694

24.4.1 System.Data.OleDb命名空间提供的功能694

24.4.2 访问Access数据库的各种类695

24.5 使用数据库访问控件696

24.5.1 用DataGridView控件管理数据库中的记录696

24.5.2 用BindingNavigator控件导航记录699

24.6 本章总结700

24.7 实战练习700

第25章 ASP.NET技术入门( 教学视频:24分钟)702

25.1 初识ASP.NET702

25.1.1 了解ASP.NET702

25.1.2 System.Web常用的类703

25.1.3 创建一个Web应用程序703

25.2 用ASP.NET控件创建网页706

25.2.1 用TextBox控件显示文本框706

25.2.2 用Button控件显示按钮707

25.2.3 用HyperLink控件显示超链接709

25.2.4 用DropDownList、ListBox等显示下拉列表、列表709

25.2.5 用Menu控件显示导航菜单711

25.3 留言板网站实例713

25.3.1 数据库和页面设计713

25.3.2 设计欢迎页面714

25.3.3 设计添加留言页面715

25.3.4 设计查看留言页面718

25.3.5 发布留言板网站721

25.4 本章总结723

25.5 实战练习724

第26章 服务器端控件详解( 教学视频:24分钟)725

26.1 认识服务器控件725

26.1.1 为什么使用服务器控件725

26.1.2 服务器控件与HTML控件的区别725

26.2 数据操作控件726

26.2.1 SqlDataSource的作用726

26.2.2 用SqlDataSource控件连接到数据库727

26.2.3 用GridView控件显示数据732

26.2.4 用DetailsView控件显示指定记录735

26.3 用验证控件检查用户输入739

26.3.1 必填内容的验证控件RequiredFieldValidator739

26.3.2 比较两个值的验证控件CompareValidator740

26.3.3 检查指定范围的验证控件RangeValidator743

26.3.4 正则表达式验证控件RegularExpressionValidator743

26.3.5 自定义验证控件CustomValidator744

26.3.6 验证错误信息汇总控件ValidationSummary747

26.4 创建ASP.NET用户控件748

26.5 本章总结751

26.6 实战练习751

第7篇 .NET 4.0的增强功能

第27章 WPF框架( 教学视频:19分钟)754

27.1 WPF基础754

27.1.1 了解WPF基础架构754

27.1.2 与WPF相关的技术755

27.2 创建WPF应用程序756

27.2.1 创建WPF的过程756

27.2.2 完整的WPF应用程序实例759

27.2.3 创建WPF浏览器应用程序761

27.3 简单WPF实例763

27.3.1 用ListBox控件实现列表显示763

27.3.2 用Hyperlink控件实现多页面切换767

27.3.3 用DockPanel沿容器边缘定位768

27.3.4 使用StackPanel叠放包含的控件770

27.3.5 使用数据源集合实现多数据绑定771

27.3.6 属性变更引起依赖数据绑定变化774

27.3.7 使用Brush填充图形778

27.3.8 使用Storyboard实现动画783

27.3.9 使用Storyboard实现控件的翻转785

27.4 本章总结787

27.5 实战练习787

第28章 WCF框架( 教学视频:22分钟)788

28.1 WCF基础788

28.1.1 了解WCF架构788

28.1.2 了解WCF模型789

28.2 WCF服务和客户端实例790

28.2.1 创建WCF服务承载项目790

28.2.2 定义WCF服务协定790

28.2.3 定义实现WCF服务接口的类792

28.2.4 运行WCF服务的相关代码793

28.2.5 创建WCF客户端程序795

28.2.6 配置WCF客户端的配置795

28.2.7 WCF客户端对服务端的调用797

28.3 主要的WCF技术799

28.3.1 使用会话在客户端与服务间交互799

28.3.2 WCF事务管理模型800

28.4 本章总结801

28.5 实战练习802

第29章 Windows WF框架( 教学视频:40分钟)803

29.1 C#的工作流开发框架803

29.1.1 了解WF框架803

29.1.2 WF框架中的重要元素804

29.2 开发WF工作流应用程序805

29.2.1 第一个WF应用程序805

29.2.2 WF工作流的基本元素:WF活动810

29.2.3 自定义的代码活动815

29.2.4 WF提供的服务818

29.3 WF创建工作流实例819

29.3.1 在工作流中使用集合819

29.3.2 猜价格游戏823

29.4 本章总结828

29.5 实战练习828

第30章 语言集成查询LINQ( 教学视频:25分钟)829

30.1 LINQ概述829

30.1.1 了解LINQ查询829

30.1.2 简单LINQ查询实例830

30.2 LINQ语言基础830

30.2.1 最重要的LINQ查询表达式831

30.2.2 LINQ查询语法和方法语法实例833

30.2.3 用LINQ合并数据835

30.2.4 用LINQ转换数据837

30.3 LINQ查询数据源838

30.3.1 用LINQ To SQL查询数据库中的数据838

30.3.2 用LINQ To DataSet查询缓存在DataSet中的数据842

30.3.3 用LINQ To XML查询XML中的数据843

30.3.4 用LINQ To Objects查询可枚举的集合844

30.4 本章总结846

30.5 实战练习846

*第8篇 综 合 案 例

第31章 用MVC开发音乐商店网站848

31.1 开发站点前的配置848

31.1.1 预览音乐商店网站848

31.1.2 系统架构总览851

31.1.3 系统数据库设计852

31.1.4 系统文件目录结构854

31.1.5 创建母版页和CSS文件856

31.1.6 使用Entity Framework创建实体模型858

31.2 音乐专辑列表实现860

31.2.1 首页控制器实现860

31.2.2 创建首页视图861

31.2.3 浏览音乐流派862

31.2.4 浏览音乐明细信息865

31.3 管理音乐列表866

31.3.1 基于角色的身份验证867

31.3.2 编辑音乐信息870

31.3.3 基于模型的数据验证875

31.4 实现和管理购物车876

31.4.1 添加到购物车功能876

31.4.2 从购物车中移除功能879

31.4.3 提交购物车880

31.5 关键技术讲解885

31.6 本章总结885

31.7 实战练习885

第32章 电子购物商城886

32.1 系统总体设计886

32.1.1 系统功能描述886

32.1.2 WebShopping应用程序组成888

32.1.3 保存数据需要哪些表890

32.1.4 设计数据库表之间关系设计893

32.2 系统通用类和模块设计894

32.2.1 编写系统常量和枚举代码894

32.2.2 编写系统常用操作的代码895

32.2.3 设计显示标题的用户控件896

32.2.4 设计分页用户控件897

32.2.5 创建级联样式表web.css文件902

32.2.6 设计主题文件902

32.2.7 在Web.config中设置数据库连接字符串903

32.2.8 创建数据库对象模型904

32.3 电子购物商城首页907

32.3.1 设计首页界面907

32.3.2 设计全站搜索的用户控件911

32.3.3 设计登录网站的用户控件912

32.3.4 设计显示新闻的用户控件914

32.3.5 设计显示公告的用户控件916

32.4 用户注册和登录917

32.4.1 用户必须先注册918

32.4.2 显示提交的用户信息922

32.4.3 处理用户登录925

32.4.4 退出系统时要做的操作928

32.5 浏览商品、购物车和订单928

32.5.1 查看商品信息929

32.5.2 对商品进行评论932

32.5.3 购物车功能936

32.5.4 将商品加入购物车937

32.5.5 查看购物车内容940

32.5.6 生成订单编号的代码944

32.5.7 生成购物订单945

32.5.8 发布留言950

32.6 商 品 搜 索952

32.6.1 按商品名称搜索953

32.6.2 更复杂的高级搜索956

32.7 用户信息中心960

32.7.1 管理用户的首页960

32.7.2 根据角色动态加载操作菜单962

32.7.3 查看个人信息965

32.7.4 修改个人信息967

32.7.5 修改密码971

32.7.6 管理我的订单974

32.8 商品及其分类管理978

32.8.1 查看已有商品分类列表978

32.8.2 动态加载商品分类层次结构的代码983

32.8.3 添加新的商品分类984

32.8.4 修改已有商品分类987

32.8.5 查看已有商品列表990

32.8.6 动态加载商品分类层次树的代码997

32.8.7 添加新的商品999

32.8.8 修改已有商品1003

32.8.9 商品图片管理1007

32.8.10 显示商品图片1012

32.8.11 商品评论列表1013

32.9 系统信息中心1018

32.9.1 查看已有新闻列表1018

32.9.2 发布新的新闻1023

32.9.3 修改已发布新闻1025

32.9.4 发布公告1029

32.9.5 管理用户留言1032

32.10 系统用户和角色管理1035

32.10.1 查看已有角色列表1036

32.10.2 添加新的角色1040

32.10.3 修改已有角色1042

32.10.4 管理注册用户1045

32.10.5 添加管理员1049

32.11 本章总结1053

32.12 实战练习1053 说明:因篇幅所限,第8篇内容以PDF电子文档的格式收录于本书的配书光盘中。该项目案例涉及的源程序也收录于配书光盘中。

C#编程实战宝典

目录

·XXVIII·

·XXVII·

C#编程经验技巧宝典源代码,目录如下:第1章 开发环境 11.1 Visual Studio开发环境安装与配置 20001 安装Visual Studio 2005开发环境须知 20002 配置合适的Visual Studio 2005开发环境 20003 设置程序代码行序号 30004 开发环境全屏显示 30005 设置窗口的自动隐藏功能 30006 根据需要创建所需解决方案 40007 如何使用“验证的目标架构”功能 41.2 Visual Studio开发环境的使用 40008 为程序设置版本和帮助信息 40009 设置Windows应用程序启动窗体 50010 设置Web应用程序起始页 50011 如何设置程序的出错窗口 50012 如何进行程序调试 60013 如何结束不能正常运行的程序 60014 如何锁定窗体中的控件 60015 统一窗体中控件的字体设置 70016 通过“格式”菜单布局窗体 70017 起始页中的“Visual Studio开发人员新闻” 71.3 MSDN帮助的使用 80018 有效利用Visual Studio 2005附带程序 80019 有效使用MSDN帮助 90020 如何设置MSDN帮助 91.4 其他 100021 如何添加项目引用 100022 如何添加Web引用 100023 如何添加引用第3方控件 110024 如何生成DLL文件 110025 如何使用不安全代码 11第2章 语言基础 132.1 注释 140026 如何对代码进行注释 140027 #region、#endregion关键字的使用技巧 140028 “///”符号的使用技巧 140029 使用注释取消程序语句的执行 152.2 语句 150030 跳转语句GOTO的使用 150031 Continue语句的使用 160032 Break语句的使用 160033 Return语句的使用 170034 如何实现无限循环 170035 巧用foreach语句控制控件 180036 有效使用switch case语句 182.3 运算符 190037 如何使用引号赋值 190038 巧用“^=”运算符 190039 巧用位移运算符 200040 使用条件运算符 200041 巧用分隔符 200042 如何处理转义字符 210043 “;”结束符问题 210044 如何使用“??”操作符 222.4 表达式与关键词 220045 正确使用“&&”和“||” 220046 如何处理程序“溢出”错误 230047 有效使用base关键字 230048 typeof表达式的使用 230049 params关键字可以指定多参数 240050 using关键字的用法 240051 变量的作用域 252.5 其他 260052 有效使用this对象 260053 如何声明变量 260054 如何声明相同类型的多个变量 260055 利用Object变量传递参数 270056 强行改变运算符的运算顺序 27第3章 程序算法 293.1 数据结构 300057 如何实现单向链表 300058 如何实现双向链表 350059 如何实现堆栈 410060 队列的实现 430061 树的实现 443.2 排序 480062 如何实现选择排序算法 480063 如何实现冒泡排序算法 490064 如何实现快速排序算法 500065 如何实现插入排序算法 500066 如何实现希尔排序算法 513.3 常见算法的实际应用 520067 计算1+22+33+44+……+nn的值 520068 计算10!的值 520069 求最大公约数 520070 求最小公倍数 530071 判断素数的算法 530072 如何判断一个数是否是完数 540073 歌德巴赫猜想的算法 540074 八皇后问题 540075 用回溯法找出n个自然数中取r个数的全排列 550076 约瑟夫环问题 560077 猴子选大王 570078 如何判断IP是否正确 570079 如何将小写金额转换为大写金额 570080 统计文本字数 580081 文本中首字母改为大写 590082 C#随机数的产生 590083 身份证从15位升至18位算法 600084 十进制数转二进制数的算法 600085 十进制数转八进制数的算法 610086 十进制数转十六进制数的算法 620087 二、八、十六进制数转十进制数的算法 633.4 密码算法 650088 使用MD5算法对密码进行加密 650089 “凯撒”密码的算法 65第4章 字符及字符串处理技术 674.1 字符及字符串转换 680090 如何获得字母的ASCII码 680091 如何根据ASCII码获得字母 680092 编程中经常使用的ASCII码 680093 获得汉字的区位码 690094 如何根据区位码获得汉字 690095 如何将行字符串转换为列字符串 700096 如何将数字转换为字符串 700097 如何将字符串转换为数字 700098 如何将数字转换为日期格式 710099 如何将数字转换为货币格式 710100 将字母全部转换大写 710101 将字母全部转换小写 720102 将字符串首字母转换大写 720103 如何进行字节数组和字符串的相互转换 720104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 734.2 获取字符串信息 730105 如何获得一个字符串的长度 730106 如何获得一个字符串中数字的长度 740107 如何获得字符串中数字或字母的长度 740108 如何获得字符串中某个数字的位置 750109 获得字符串中汉字的个数 760110 获得字符串中指定后几位字符 760111 计算字符串中子字符串出现的次数 760112 获得字符串中大写字母的个数 770113 获得某字符在字符串中最后出现的位置 780114 如何找出字符串中某一字符的所有位置 784.3 常用字符及字符串处理技术 790115 如何判断是否为数字 790116 如何在字符串中查找指定字符 790117 如何在字符串中用一子串替换另一子串 800118 将新字符串添加到已有字符串中 800119 如何在字符串中添加多个空格 810120 如何根据标点符号分行 810121 如何将字符串颠倒输出 820122 如何设置小数的保留位数 820123 如何对字符串进行组合或分解 820124 判断字符串中某一字符是否大写 830125 按要求生成指定位数编号 830126 确定两字符串是否相等 840127 判断两字符串中指定子串是否相等 840128 判断字符串是否为日期格式 850129 清除字符串中指定的字符 850130 复制字符串中指定的字符 850131 巧截字符串的数字 860132 如何存储变长字符串 860133 在进行字符串比较时忽略大小写 870134 如何去除字符串尾空格 870135 如何去掉字符串中所有空格 880136 如何进行文本加密与解密 880137 如何区别0、空字符串、Null、Empty和Nothing 890138 从字符串中分离文件路径、文件名及扩展名 890139 如何批量替换某一类字符串 89第5章 数据处理 915.1 数字处理技巧 920140 如何对计算结果四舍五放入 920141 如何将商品金额小写转换成大写 920142 如何根据生日自动计算员工年龄 930143 如何设置货币值中使用的小数位数 930144 如何自定义货币值中的小数点 940145 如何自定义货币值中小数点左边数字分组字符 940146 如何自定义货币值中小数点左边每一组的位数 950147 如何自定义百分比值中小数的位数 950148 如何自定义百分比小数点 960149 如何自定义百分比小数点左边数字分组字符 960150 如何自定义百分比小数点左边每一组的位数 970151 如何自定义百分比符号 970152 如何自定义数字小数点右边的保留位数 980153 如何自定义数字小数点左边分组位数 980154 格式化输入数据为货币格式 990155 如何计算两个整数的乘积 990156 如何将二进制数转换为十进制数 1000157 如何将二进制数转换为八进制数 1000158 如何将二进制数转换为十六进制数 1000159 如何实现0~9之间随机整数 1010160 如何实现0~1之间随机数 1010161 如何返回数字的绝对值 1015.2 控件数据处理技巧 1020162 如何实现C#中用键完成TAB的功能 1020163 如何限制文本框密码输入长度 1020164 数据输入为空提示 1030165 如何设置文本框光标到末尾 1030166 输入法调整技巧 1030167 锁定文本框内的文本 1030168 使用Message.Show输出用户信息 1045.3 图片数据处理技巧 1040169 如何将图片存入数据库 1040170 如何将图片从数据库中读取出来 1040171 如何只允许输入指定图片格式 1050172 如何设置录入图片统一图片大小 1055.4 数组处理技巧 1050173 如何转换数组类型 1050174 如何复制数组中一系列元素的元素 1060175 如何检索指定条件数组中的元素 1070176 如何动态改变数组长度 1080177 如何反转数组中元素的顺序 1080178 如何排序数组中的元素的顺序 1090179 如何创建动态数组 1105.5 NET应用技巧 1100180 如何使用ASP.NET技术对口令加密 1100181 如何设定ASP.NET全局变量 1110182 如何设定全局联接数据库对象 1110183 如何在ASP.NET中获得客户端IP地址 1110184 如何在ASP.NET中获取文件的扩展名 1110185 如何在ASP.NET中用URL在页面之间传值 1120186 如何使用IsPostBack实现ASP.NET页面加载 1120187 如何利用输出缓存技术缓存ASP.NET页面 1120188 如何在ASP.NET中显示当前IE浏览器头信息 1135.6 其他应用技巧 1140189 如何判断年份是否为闰年 1140190 如何根据年份判断十二生肖 1140191 如何根据IP地址获取本机域名 1150192 如何获取“我的文档”系统文件夹路径 1150193 如何获取应用程序当前执行的路径 1160194 如何获取当前操作系统的信息 1160195 如何实现基本数据类型随意转换 1160196 如何生成全局唯一标识符(GUID) 118第6章 资料验证技术 1196.1 网络验证应用技巧 1200197 如何使用正则表达式验证E-mail格式 1200198 如何使用正则表达式验证IP地址 1200199 如何使用正则表达式验证URL 1206.2 常用数字验证技巧 1210200 如何使用正则表达式验证电话号码 1210201 如何使用正则表达式验证输入密码条件 1210202 如何使用正则表达式验证邮政编号 1210203 如何使用正则表达式验证手机号 1220204 如何使用正则表达式验证身份证号 1220205 如何使用正则表达式验证两位小数 1220206 如何使用正则表达式验证一年的12个月份 1230207 如何使用正则表达式验证一个月的31天 1230208 如何使用正则表达式验证数字输入 1230209 如何使用正则表达式验证密码长度 1240210 如何使用正则表达式验证非零的正整数 1240211 如何使用正则表达式验证非零的负整数 1246.3 常用字符验证技巧 1250212 如何使用正则表达式验证大写字母 1250213 如何使用正则表达式验证小写字母 1250214 使用正则表达式检查字符串中重复出现的词 1250215 如何使用正则表达式替换字符串 1260216 如何使用正则表达式拆分字符串 1270217 如何使用正则表达式验证输入字母 1270218 如何使用正则表达式验证中文汉字输入 1280219 如何使用正则表达式验证输入字符串 128第7章 日期和时间 1297.1 日期与时间的获取 1300220 获得系统当前日期 1300221 获得系统当前时间 1300222 同时获得系统当前日期和时间 1300223 如何获取当前日期是星期几 1300224 如何获取当前年的天数 1310225 如何获取当前月的天数 1310226 如何取得当前日期的前一天 1320227 使用TimeSpan对象获取时间间隔 1337.2 日期的格式化及其时间的比较 1330228 将日期格式化为指定格式 1330229 如何将短日期格式化为长日期格式 1340230 如何将数字日期转化为中文格式 1340231 如何对系统时间和数字进行比较 1350232 如何比较时间 1350233 获取两个日期之间的时间差并进行比较 1367.3 日期方法与函数的应用 1360234 使用DateDiff方法获取日期时间的间隔数 1360235 在SQL语句中使用DATEADD函数向指定日期添加一段时间间隔 1370236 在SQL语句中使用DATEDIFF函数获得两个日期的间隔 1370237 如何使用Sleep方法延迟时间 1370238 如何确定程序的运行时间 1380239 如何使用ParseExact方法将字符串转化为日期格式 1380240 如何使用ToString方法格式化日期 1390241 如何使用Convert方法转换日期显示格式 1397.4 系统时间与日期的设置 1400242 如何设置系统的日期 1400243 如何设置系统的时间 1400244 如何设置系统的日期和时间 1417.5 日期与时间的应用 1420245 如何将数据控件中的日期以编程的方式转化为指定格式 1420246 将格式化日期的方法绑定到数据控件中 1420247 直接格式化绑定到数据控件GridView中的日期列 1430248 在数据控件GridView的RowDataBound事件中对绑定到GridView控件的日期列进行格式化 1430249 如何实现倒计时功能 1430250 如何创建一个数字时钟 144第8章 Windows窗体设计 1458.1 Windows窗体基本操作 1460251 控制窗体加载时所在的位置 1460252 控制窗体最大化、最小化 1460253 清空窗体中的图片 1460254 如何使程序窗体总在最前 1470255 如何将菜单置于窗体的左侧 1470256 将其他窗体作为当前窗体的子窗体 1470257 如何根据控件大小自动显示滚动条 1480258 如何显示About窗体 1480259 利用Show方法显示被调用窗体 1490260 Load事件将窗体加载到内存 1490261 窗体的卸载与隐藏 1490262 设置窗体的状态 1490263 如何设置窗体在桌面上的位置 1500264 如何在关闭窗体前显示确认对话框 1500265 如何去掉窗体的标题栏 1510266 如何禁止在任务栏中显示窗体标题 1520267 如何禁止缩放窗体的边框 1520268 如何设置窗体标题栏文字右对齐 1520269 如何显示窗体的属性信息 1530270 如何隐藏窗体标题栏的按钮 1538.2 Windows窗体高级操作 1530271 设置闪烁的标题栏 1530272 如何在托盘中写入应用程序图标 1540273 如何以全屏方式显示程序窗体 1540274 如何从上次关闭位置启动窗体 1540275 如何通过拖动工作区来移动窗体 1550276 如何渐变显示窗体背景颜色 1550277 如何排列MDI窗体中的子窗体 1560278 如何拖动无标题栏窗体 1578.3 特殊类型的窗体 1580279 创建一个无ICON的窗体 1580280 如何制作飘动的窗体 1580281 使用拆分窗口 1590282 用C#实现启动欢迎界面 1590283 如何实现半透明渐显窗体 1600284 基于ListView的导航界面 1600285 类似OutLook的导航界面 1620286 图形化的导航界面 1620287 如何实现类似QQ的程序界面 1620288 如何实现类似Windows XP的程序界面 1640289 制作字形窗体 1640290 制作图形窗体 1640291 随机更换背景的窗体 1658.4 菜单、工具栏和状态栏的设计 1660292 带图标的菜单 1660293 带历史信息的菜单 1660294 可以拉伸的菜单 1670295 带背景的工具栏 1680296 浮动工具栏 1680297 带下拉菜单的工具栏 1690298 在状态栏中显示复选框 1690299 带进度条的状态栏 1690300 带图标的状态栏 1708.5 其他 1700301 界面设计要素 1700302 界面设计在程序开发中的重要性 1710303 如何设置窗体的键响应按钮 1720304 如何设置窗体的键响应按钮 1720305 窗体间数据的访问 172第9章 Windows窗体控件 1759.1 TextBox控件应用技巧 1760306 文本框中只能输入数字 1760307 如何设置TextBox控件输入多行文本 1760308 如何锁定文本框 1760309 如何控制TextBox控件中的插入点 1760310 如何创建密码文本框 1770311 如何创建只读文本框 1770312 如何在文本框字符串中放置引号 1770313 如何在TextBox控件中查看多个行 1770314 如何TextBox控件中显示回车符 1789.2 RichTextBox控件应用技巧 1780315 删除RichTextBox控件中的部分文字 1780316 RichTextBox与TextBox控件有何不同 1790317 如何使用RichTextBox控件显示文件 1790318 如何使用RichTextBox控件保存文件 1800319 如何在RichTextBox控件中查找字符 1810320 如何在RichTextBox控件插入图片 1810321 如何为RichTextBox控件添加快捷菜单 1820322 在RichTextBox控件中替换文本文字 1839.3 Button控件应用技巧 1830323 C#中轻松打造绚丽按钮 1830324 如何使Button控件大小自动适应文本长度 1840325 如何设置窗体一个默认单击按钮 1840326 如何设置窗体一个默认取消按钮 1840327 如何给按钮控件创建快捷键 1850328 如何触发Button按钮的Click事件 1850329 使用控件的Tag属性传递信息 1850330 如何在Windows窗体上停靠控件 1860331 如何动态创建Button控件 1869.4 DataGridView控件应用技巧 1870332 如何对DataGridView控件进行数据绑定 1870333 如何在DataGridView控件中设置数据的格式 1870334 如何在DataGridView控件基于文本的单元格中启用换行 1870335 如何设置DataGridView控件单元格的文本对齐方式 1870336 如何在DataGridView控件中验证数据输入 1880337 DataGridView控件中输入数据时发生的错误 1880338 如何设置DataGridView控件中网格线的样式 1890339 如何设置DataGridView控件中的边框样式 1890340 如何设置DataGridView控件中字体样式 1900341 如何设置DataGridView控件中颜色样式 1900342 获取DataGridView控件中单元格、行和列坐标 1900343 如何获取DataGridView控件中的当前单元格 1910344 如何禁止DataGridView控件中添加和删除行 1910345 DataGridView控件选中单元格时整个行背景变色 1910346 如何复制DataGridView控件单元格中的数据 1910347 如何在DataGridView控件实现下拉列表 1929.5 对话框控件应用技巧 1920348 如何利用FontDialog控件设置字体 1920349 如何利用ColorDialog控件设置字颜色 1930350 如何利用OpenFileDialog控件打开文件 1930351 如何获得弹出对话框的相关返回值 1940352 使用FolderBrowserDialog控件选择文件夹 1959.6 ListBox控件应用技巧 1950353 如何快速选中ListBox控件中全部条目 1950354 如何排序ListBox控件中的数据 1960355 如何实现ListBox控件的多项选择功能 1960356 如何在ListBox控件中查找指定的项 1960357 实现ListBox控件与ListBox控件交换数据 1979.7 ListView控件应用技巧 1980358 如何实现ListView控件实现动态加载数据 1980359 如何向ListView控件添加搜索功能 1990360 如何将数据中的表内容填充到ListView控件中 2000361 如何使ListView控件拥有编辑功能 2010362 如何实现ListView控件显示图标与列表 2010363 如何获取ListView控件中的选择结果 2020364 如何将图片加载ListView控件 2029.8 TreeView控件应用技巧 2030365 如何在TreeView控件结点中显示图片 2030366 如何在TreeView控件中用鼠标右键选中节点 2030367 区分TreeView控件选中各节点方式 2040368 如何实现TreeView控件节点拖放操作 2040369 如何实现带复选框的TtreeView控件 2050370 如何实现TreeView控件遍历磁盘目录 2060371 如何将数据库字段填充到TreeView控件 2069.9 ComboBox控件应用技巧 2070372 如何使ComboBox下拉列表显示图片 2070373 ComboBox只能从下拉列表框中选择数据 2080374 如何实现带查询功能的ComboBox控件 2080375 如何实现文件目录名称填充ComboBox控件 2090376 如何将数组绑定到ComboBox控件 2100377 如何将数据库字段绑定到ComboBox控件 2109.10 组件应用技巧 2110378 如何使用ProgressBar控件显示操作的进度 2110379 如何使用ToolTip控件显示提示信息 2110380 如何使用FlowLayoutPanel控件布局窗体 2120381 如何使用SplitContainer控件分隔窗体 2130382 如何使用Process组件打开系统进程 2140383 FileSystemWatcher监视文件夹内文件的更改 2149.11 其他常用件控件应用技巧 2150384 如何在状态栏中显示时间 2150385 如何在状态栏中加载图片 2150386 如何设置DateTimePicker控件显示为空文 2150387 如何判断ToolStrip控件Button控钮的单击 2150388 如何实现Panle自动调整大小充满窗体 2160389 如何实现CheckedListBox控件选重所有项 2160390 如何实现CheckBox控件的选择状态 2160391 如何使Lable控件显示出多行文字 2170392 如何使用LinkLabel控件实现超级链接 2170393 如何设置MaskedTextBox控件输入验证 2180394 如何使用NotifyIcon控件创建任务托盘 2190395 如何控制PictureBox控件显示图片风格 219第10章 Web页面设计 22110.1 网页外观设计 2220396 将CSS样式表应用到页面中 2220397 在页面的源码中直接定义样式表 2220398 动态加载主题到页面中 2230399 利用Table布局Web页面 2230400 FrameSet框架的应用 2240401 IFrame框架的应用 2240402 页面尺寸自动适应1024×768像素和800×600分辨率 22510.2 网页性能设计 2250403 用meta标签来增强网页性能 2250404 什么情况下使用缓冲会提高速度 2260405 使用OutputCache指令实现页面缓存 2260406 设置网页缓存的位置 2270407 使用Cache类实现应用程序数据缓存 2270408 缓存网页的不同版本 22710.3 Web页的绑定 2280409 如何绑定变量 2280410 如何绑定集合 2280411 如何绑定表达式 2290412 如何绑定方法结果 2300413 巧用DataBinder.Eval()方法进行数据绑定 2300414 如何将DropDownList控件绑定到GridView控件中 23110.4 开发Web页的常用功能 2310415 使用QueryString变量在页面之间传值 2310416 页面定时刷新如何实现 2320417 显示只有数字的验证码图片 2320418 显示数字和英文字母组合的验证码图片 2320419 页面定时刷新后跳转到其他页 2330420 打开新的窗口并传送参数 2330421 动态显示用户头像 2330422 利用Pannel控件显示和隐藏一组控件 2330423 如何在GridView控件上添加删除确认 2340424 如何为GridView控件添加编号列 2340425 FindControl方法的应用 2340426 如何实现单击表格行打开另一页并传递参数 2350427 如何实现双击表格行超级链接到另一页并传递参数 2350428 如何实现单击表格行改变颜色 2350429 鼠标移动改变表格行的颜色 2350430 如何在Web页中使用表格控件 23610.5 Web.Config文件的配置 2370431 通过Encoding的设置实现页面无乱码 2370432 限制上传文件大小与时间 2370433 配置验证级别 23710.6 开发Web页其他功能 2380434 如何使Pannel实现横向滚动纵向自动扩展 2380435 属性MaintainScrollPositionOnPostBack实现网页定位 2380436 自动隐藏式菜单 2380437 关闭弹出窗口刷新父窗口 2390438 弹出网页模式对话框 2400439 弹出全屏显示网页 2410440 为什么要生成静态页 2420441 用快捷键+实现屏蔽 2420442 如何在Web页中使用广告控件 2420443 滚动显示博客公告 243第11章 HTML客户端控件与服务器控件 24511.1 数据控件应用技巧 2460444 如何将数组绑定到GridView数据控件中 2460445 使用GridView Web服务器控件绑定数据源 2460446 使用GridView Web服务器控件自定义外观风格 2470447 使用GridView Web服务器控件的简单排序 2470448 如何在GridView Web服务器控件中分页 2480449 使用GridView Web服务器控件编辑数据 2490450 使用GridView Web服务器控件删除数据 2510451 如何使用GridView Web服务器控件选择数据 2520452 单击GridView控件按钮刷新保持原来的位置 2530453 向GridView Web控件中添加CheckBox控件 2530454 如何使用GridView Web控件实现超级链接 2540455 在GridView Web控件中高亮显示鼠标所在行 2560456 实现DataList Web服务器控件数据绑定功能 2560457 如何实现DataList Web服务器控件分页功能 2580458 实现查看DataList控件中数据的详细信息 2590459 如何在DataList控件中创建多个列 2600460 如何实现DetailsView 控件分页功能 2610461 将DataSet类对象绑定到Repeater数据控件中 26211.2 导航控件应用技巧 2630462 TreeView、SiteMapDataSource控件和SiteMap文件实现导航 2630463 如何在TreeView控件中添加连接线 2640464 以编程方式向TreeView控件中添加节点 2640465 如何在TreeView控件中显示CheckBox控件 2650466 如何判断TreeView控件中被勾选的节点 2650467 用SiteMapPath控件绑定SiteMap文件实现导航 2660468 如何设置SiteMapPath控件路径分隔符 2660469 如何设置SiteMapPath控件路径方向 2670470 如何设置SiteMapPath控件父节点显示个数 2670471 如何设置SiteMapPath控件提示字符 2680472 如何用Menu控件绑定SiteMap文件实现导航 2680473 如何设置Menu控件显示静态菜单 2690474 如何以编程方式创建Menu控件 27011.3 标准控件应用技巧 2710475 使用HyperLink服务器控件实现页面间传值 2710476 如何使用Input(Reset)实现文本框清空功能 2710477 如何取消DropDownLidt控件的激发验证 2720478 使用FileUpload服务器控件实现文件上传 2720479 使用LinkButton服务器控件实现超级链接 2730480 实现DropDownList服务器控件的数据绑定 2730481 如何改变DropDownList服务器控件中的项 2740482 指定ListBox服务器控件中的项的目的移位顺序 2750483 响应ListBox服务器控件的改变事件 2760484 如何使用CheckBox服务器控件 2760485 如何使用CheckBoxList服务器控件 2770486 使用RadioButtonList服务器控件巧用单项选择 2780487 使用BulletedList控件显示项目符号和编号 2790488 如何使用HiddenField控件 2800489 如何使用Literal控件显示静态文本 2810490 如何使用AdRotator控件制作广告 2810491 如何使用Wizard Web服务器控件制作导航页 2820492 使用XML服务器控件转换XML文档 2830493 使用MultiView与View控件制作导航页面 2860494 使用PlaceHolder控件实现动态添加控件 2890495 如何实现带滚动条的Panel面板 2900496 使用Substitution控件在缓存页面插入内容 290第12章 内置对象 29312.1 ASP.NET基本对象 2940497 使用Session对象在页面之间传值 2940498 如何使用Session验证用户登录 2940499 配置Session的生命周期 2940500 如何遍历Session对象 2950501 使用Application对象在页面之间传值 2950502 存取Application变量内容 2950503 如何锁定Application对象 2960504 如何使用Application实现站点访问量统计 2960505 如何删除Application变量内容 2960506 使用ViewState对象在同一个页面传值 29712.2 Response与Request对象 2970507 如何解决Response.Redirect方法传递汉字时出现的错误 2970508 使用Response.BinaryWrite方法输出二进制图像 2970509 Response对象将文本文件的内容写回客户端浏览器 2980510 如何使用Request接收页面间传值 2980511 使用Request对象的Browser属性获取客户端浏览器信息 2980512 获取客户端和服务器端IP地址 2990513 使用Request对象获取客户端的表单信息 3000514 使用Request对象的PhysicalApplicationPath属性获取服务器的绝对路径 3000515 使用Request对象的CurrentExecutionFilePath属性获取当前页面的路径 3000516 如何获取ASP.NET中所有Request的属性 3000517 缓存区的应用 30112.3 Cookie对象 3020518 使用Cookie的优缺点 3020519 使用Cookie对象在页面之间传值 3020520 如何使用Cookie验证用户登录 3030521 Cookie可以存储哪些值 3030522 使用Cookie对象保存和读取客户端信息 3030523 如何加密Cookie中的数据 3040524 创建及存取多个键值的Cookie对象 3040525 如何遍历Cookie集合 3040526 设定Cookie变量的生命周期 3050527 如何删除客户端的Cookies 3050528 如何删除多值Cookie中的某个值 3050529 如何使用Cookie处理网上重复投票 3050530 如何使用户第2次访问我的网站不用提交信息 30612.4 Server对象 3070531 使用Server.Transfer方法在页面之间传值 3070532 使用Server.MapPath方法获取服务器的物理地址 3080533 使用Server.UrlEncode方法对字符串进行编码 3080534 使用Server.UrlDecode方法对字符串进行解码 3080535 利用Server对象进行HTML编码输出 3080536 利用Server对象进行HTML解码输出 309第13章 图形图像技术 31113.1 图像预览及转换 3120537 如何设计缩略图功能的图片浏览器 3120538 如何浏览大图片 3120539 如何局部放大图片 3130540 如何实现剪切图片 31313.2 图形缩放与变换 3150541 如何缩放图片 3150542 如何转换图像文件格式 31513.3 图像效果 3160543 如何以底片效果显示图像 3160544 如何以浮雕效果显示图像 3170545 如何以黑白效果显示图像 3180546 如何以柔化效果显示图像 3190547 如何以锐化效果显示图像 3200548 如何以雾化效果显示图像 3210549 如何以光照效果显示图像 3220550 如何以百叶窗效果显示图像 3230551 如何以马赛克效果显示图像 3250552 如何以任意角度旋转图像 3260553 如何以椭圆形显示图像 3270554 如何以不同的透明度显示图像 3280555 如何以不同分辨率显示图像 3280556 如何以不同翻转方式显示图像 3290557 如何以油画效果显示图像 3300558 如何以扭曲效果显示图像 3310559 如何以分块效果显示图像 3320560 如何以四周扩散方式显示图像 3330561 如何以从上向下拉伸方式显示图像 3340562 如何以从左向右拉伸方式显示图像 3350563 如何以上下反转方式显示图像 3350564 如何以上下对接方式显示图像 3360565 如何以左右反转方式显示图像 3370566 如何以左右对接方式显示图像 3380567 如何以淡入淡出效果显示图像 3390568 如何以积木效果显示图像 34113.4 图像字体 3420569 如何以渐变色效果显示文字 3420570 如何以倾斜效果显示文字 3430571 如何以阴影效果显示文字 3430572 如何以倒影效果显示文字 3440573 如何以投影效果显示文字 3440574 如何以浮雕效果显示文字 3450575 如何以印版效果显示文字 3460576 如何为文字填充图片纹理 3460577 如何创建可旋转文字 34713.5 图像识别及图像工具 3470578 如何获取图像的像素值 3470579 如何设置图像的像素值 3480580 如何校正图像显示颜色 3490581 如何使用阈值校正图像显示颜色 3510582 如何获得图像信息 3520583 如何制作简单的画图工具 3530584 如何将图片以Image类型存储到数据库 3560585 如何从数据库中读取Image类型的字段 35713.6 图像应用及其他 3580586 如何在Web页面上显示图像 3580587 绘制渐变背景图像 3590588 确定鼠标是否在图形范围内 3590589 如何绘制柱形图 3600590 如何绘制饼形图 3620591 如何绘制折线图 3640592 如何绘制图形验证码 3660593 如何在桌面上全屏显示图像 3670594 如何利用Image制作小动画 3680595 如何使用鼠标拖动图片 3680596 如何获取当前鼠标的形状 369第14章 动画与多媒体 37114.1 声音控制 3720597 如何播放WAV声音文件 3720598 如何播放默认的Beep事件声音 3720599 如何播放默认的Hand事件声音 3720600 如何播放默认的Asterisk事件声音 3720601 如何播放默认的Question事件声音 3730602 如何播放默认的Exclamation事件声音 3730603 如何设置计算机喇叭发出的声音 3730604 如何同步加载并播放声音文件 3740605 如何异步加载并播放声音文件 37414.2 多媒体及其他 3750606 C#实现动画效果 3750607 C#设计屏幕保护程序 3750608 如何实现滚动字幕 3760609 如何播放AVI动画文件 3760610 如何播放Flash 3770611 用C#实现家庭影集 3780612 C#实现电影特效 3790613 如何实现Word艺术字 3790614 检查是否安装声卡 3800615 带有记忆功能的MP3 3800616 打开和关闭光驱 3810617 如何收听网络电台 3820618 如何通过剪贴板复制粘贴图像 3820619 如何转换图像文件的保存格式 3830620 如何制作自动播放的MP3播放器 3840621 学校体操定时音乐播放 3850622 如何从ARGB分量值创建Color结构 3850623 如何动画显示窗体 3860624 如何获取系统的图像编码器信息 3870625 如何获取系统的图像解码器信息 388第15章 键盘与鼠标 38915.1 鼠标操作技巧 3900626 鼠标双击窗体时模拟键盘Tab键操作 3900627 定义鼠标指针形状 3900628 自定义鼠标的图片 3910629 鼠标拖放复制文本 3910630 如何使用鼠标单击添加控件 3920631 如何获得鼠标在窗体上的位置 3920632 如何交换鼠标左右键功能 3920633 如何隐藏和显示鼠标 3930634 如何获取光标闪烁的频率 3940635 如何获得屏幕上鼠标的坐标 3940636 如何限制鼠标在某一区域工作 3940637 如何利用鼠标绘图 3950638 如何获取鼠标双击时间间隔 3960639 如何获取鼠标键数 3960640 如何显示鼠标的等待光标 3970641 如何禁用鼠标左键 3970642 如何模拟鼠标操作 3980643 如何实现鼠标穿透窗体 3990644 如何记录鼠标行为 39915.2 键盘操作技巧应用 4000645 如何禁用输入法编辑器 4000646 如何打开和关闭输入法编辑器 4000647 回车转换成Tab键 4000648 如何获取组合键 4010649 如何获取功能键 4010650 如何判断NumLock键和CapsLock键是否锁定 4010651 如何屏蔽+键关闭窗体 4020652 如何实现按下键关闭窗体 4020653 如何避免按键产生“嘀”声 4030654 如何设置键盘热键 403第16章 文件、文件管理及数据流 40516.1 获取文件基本信息 4060655 获取文件创建的日期和时间 4060656 如何检索路径中的文件名和扩展名 4060657 如何获得文件的大小 4070658 如何修改文件属性 4070659 如何监视文件系统变化情况 4080660 如何获取文件的系统启动方式 4080661 如何获取文件名禁止使用的字符 4090662 如何获取路径名禁止使用的字符 4100663 如何获取指定目录的上级目录 41016.2 文件基本操作 4110664 判断文件是否存在 4110665 创建一个文件用于写入UTF-8编码的文本 4110666 OpenRead方法打开现有文件并读取 4120667 打开现有UTF-8编码文本文件并进行读取 4120668 OpenWrite方法打开现有文件并进行写入 4130669 如何读取文件中的第一行数据 4130670 如何向文件中写入数据 4130671 如何读取文件中所有数据 4140672 如何创建临时文件 4140673 如何实现文件替换 4150674 使用递归法删除文件夹中所有文件 4150675 如何更改文件扩展名 4160676 如何实现复制文件 4160677 如何修改文件名 4160678 如何删除文件 4170679 如何上传文件 4170680 如何下载文件 4180681 如何拖放文件 4190682 如何搜索文件 41916.3 文件夹基本操作 4200683 如何创建文件夹 4200684 如何移动文件夹 4200685 如何修改文件夹名称 4210686 如何遍历文件夹 4210687 如何删除文件夹 42216.4 数据流操作 4220688 如何读写内存数据流 4220689 如何创建二进制文件 4230690 如何读取二进制文件 4230691 如何使用缓冲流 42416.5 加密、解密及解压缩文件 4250692 加密和解密文件 4250693 如何使用对称算法加密文件 4250694 如何使用对称算法解密文件 4260695 如何使用GZip压缩文件 4270696 如何使用GZip解压文件 4280697 如何使用WinRAR压缩文件 4290698 如何使用WinRAR解压文件 42916.6 其他 4300699 设置文件的访问模式 4300700 如何在C#应用程序中使用INI文件 4300701 如何操作帮助文件 4310702 如何操作Word文件 4320703 如何操作Excel文件 4330704 如何将文本文件转换成网页文件 4340705 如何产生随机文件夹名或文件名 4350706 如何将长文件名转换成短文件名 4360707 如何用程序创建XML文档并写入内容 4360708 如何通过DataSet对象读取XML文件 4380709 如何动态创建XML文件节点 4390710 如何实现XML文件数据类型的转换 4390711 将图片保存到XML文件中 4400712 如何比较两个文件的内容是否相同 4400713 如何以缩略图形式上传图片文件 4410714 如何解析只有一种格式的文本文件 4420715 如何解析含有多种格式的文本文件 443第17章 Windows开发技术 44517.1 获取计算机系统信息 4460716 如何获取系统时间 4460717 如何获取系统目录 4460718 如何获取计算机名称 4460719 如何获取当前程序运行目录 4460720 如何获得操作系统版本号 44617.2 获取计算机硬件信息 4460721 如何获取CPU编号 4460722 如何获取显示设备的PNPDeviceID 4470723 如何获取声音设备的PNPDeviceID 4470724 如何获取硬盘编号 4470725 如何获取CPU的版本信息 4480726 如何获取CPU的产品名称信息 4480727 如何获取CPU的制造商名称 4480728 如何获取主板制造商 4490729 如何获取主板编号 4490730 如何获取主板型号 4490731 如何获取磁盘空间 4500732 如何获取磁盘剩余空间 4500733 如何确定屏幕的分辨率 4510734 如何获得磁盘的卷标 4520735 如何获得磁盘的文件系统类型 45217.3 获取特殊文件夹路径 4530736 如何获取ProgramFiles目录全路径 4530737 如何获取桌面目录全路径 4530738 如何获取开始菜单目录全路径 4540739 如何获取用户程序组目录全路径 4540740 如何获取文档模板目录全路径 4550741 如何获取收藏夹目录全路径 4550742 如何获取共享组件目录全路径 4560743 如何获取我的图片目录全路径 4560744 如何获取Internet历史记录全路径 4570745 如何获取Internet临时文件目录全路径 4570746 如何设置可用样式 45717.4 获得Windows当前用户 4580747 如何获取当前用户 4580748 如何判断当前用户是否是普通用户 4580749 如何判断当前用户是否是超级用户 4580750 如何判断当前用户是否是系统管理员 4590751 如何判断当前用户是否是系统操作员 4590752 如何判断当前用户是否是备份操作员 4600753 如何判断当前用户是否是打印操作员 4600754 如何判断当前用户是否是复制程序员 4610755 如何判断当前用户是否是账户操作员 46117.5 Windows日志 4620756 如何获取系统日志信息 4620757 如何获取安全日志信息 4620758 如何获取应用程序日志信息 4630759 如何创建并写入自定义日志信息 4640760 如何向系统日志写入自定义数据 4640761 如何向应用程序日志写入自定义信息 46517.6 计算机控制 4650762 列举系统中所有窗口 4650763 C#实现键盘钩子 4650764 如何关闭计算机 4660765 如何抓屏 4660766 如何休眠计算机 4670767 如何禁止使用Windows任务管理器 4680768 如何为文件新增右键菜单项 4680769 如何设置系统仅能运行的程序 4690770 如何获取本地计算机上所有的进程 4690771 如何启动一个进程 4700772 怎样杀死一个进程 4700773 如何获取远程计算机上所有的进程 47017.7 其他相关技术 4700774 如何在注册表中保存窗体的大小和位置 4700775 如何实现程序间注册表内传递变量 4710776 在使用OpenFileDialog中的相对路径问题 4710777 如何设置启动时自动执行程序 4710778 C#编程实现Windows XP风格的界面 4710779 用C#实现文件查找功能 4730780 如何序列化对象 4730781 如何实现特殊形状的窗体 4740782 如何移动正在使用的文件 4740783 如何实现类似QQ的程序界面 4750784 如何实现动画显示窗体 4760785 如何显示和隐藏任务栏 4770786 如何实现OutLook界面 4780787 如何在C#中回车换行 4780788 如何获取进程的命令行 4790789 如何按行读取文本并显示行数 4790790 如何在Form中嵌入Excel 4790791 如何使用互斥量禁止程序运行两个实例 4800792 如何使用进程名禁止程序运行两个实例 4800793 如何获取控制台应用程序的显示结果 4810794 如何用@代替路径中的转义字符 482第18章 程序应用控制 48318.1 提取信息 4840795 判断驱动器类型并获取其属性 4840796 如何得到本地机器的IP 4840797 如何得到本地运行的EXE的路径 4850798 得到计算机所有正在运行的进程 4850799 获得Windows的启动模式 4850800 获取鼠标的按钮个数及鼠标安装状态 4850801 检测计算机是否存在网络连接 4860802 如何判断计算机的联机状态 4860803 获取计算机屏幕分辨率 4860804 获取计算机当前登录的用户名称 48618.2 系统控制 4860805 远程关闭或重新启动计算机 4860806 创建应用程序快捷方式 4870807 启动Windows系统服务 4880808 在C#应用程序中控制输入法 4880809 打开“区域和语言选项”对话框并指定选项卡 4890810 如何执行命令行命令? 4890811 如何修改计算机的默认打印机 4900812 如何实现行业软件系统注销功能 4900813 如何将计算机设置为休眠状态 4900814 在Windows系统中建立事件日志 4910815 如何使PC喇叭发音 49118.3 程序控制 4910816 使用回车键控制鼠标焦点 4910817 如何调用可执行应用程序 4920818 TextBox上禁用鼠标右鍵 4920819 如何实现屏幕截图 4920820 如何将截取的图片保存为指定图片格式 4930821 如何复制程序本身 4930822 分段显示电话号码颜色 4930823 软件版本号是如何组成的 4930824 单击“关闭”按钮或按+键时最小化窗口 4940825 屏蔽RichTextBox控件+快捷键 49518.4 其他 4950826 将DataGridView控件中的数据导入Excel 4950827 无法获取自定义环境变量的值 4960828 将组件放到COM+服务器上去 4960829 调用非托管的DLL文件 4970830 如何将GridView控件数据导入Word 4970831 如何将GridView控件数据导入Excel 4970832 单片机如何实现在线调试 4980833 单片机如何实现内存优化管理 4980834 单片机实现文件系统管理 4980835 杀死进程 4980836 如何下载某网站上的图片资源 498第19章 SQL查询相关技术 50119.1 常用SQL查询技术 5020837 如何在查询中正确使用单引号“’” 5020838 SQL中SELECT语句的执行顺序 5020839 在查询时查询数据为指定长度的数据 5020840 如何利用WHERE参数过滤数据 5030841 如何正确地理解和运用SQL中的判式 5030842 如何正确地理解和使用SQL中的关键字 50319.2 比较、逻辑运算符查询 5040843 如何使用算术运算符号进行比较查询 5040844 如何使用比较运算符号进行比较查询 5040845 如何使用AND逻辑运算符查询 5050846 如何使用OR逻辑运算符查询 5060847 如何联合使用AND和OR运算符查询 5060848 如何在查询中正确使用逻辑操作符 5070849 利用通配符进行查询 50719.3 SQL关键字查询 5080850 如何使用ESCAPE关键字规定转义字符 5080851 如何使用BETWEEN进行范围查询 5080852 如何使用NOT BETWEEN进行范围查询 5090853 如何使用GROUP BY子句查询 5090854 如何使用HAVING语句过滤分组数据 5100855 如何使用ALL关键字查询 5100856 如何使用CUBE关键字查询 51119.4 表结构与性能 5110857 检测信息是否存在 5110858 @@CPU_BUSY获取CPU的工作时间 5110859 如何获取磁盘读写次数 5120860 获取SQL Server服务器名 5120861 获取数据库标识号 5120862 判断用户是否访问数据的权限 5120863 显示表中列信息 5120864 显示表中任意列名称 5130865 提高SQL性能加快执行速度 5130866 控制批处理内语句的执行 5130867 执行查询但是显示列信息 5140868 获取连接或试图连接的次数 5140869 获取当前数据库的语言名 51419.5 时间与谓词 5140870 时间函数的使用 5140871 设置数据库时间表显形式 5150872 格式化日期显示格式 5150873 如何正确理解SQL中的NULL值 5160874 如何使用IsNull()函数来处理空值 5160875 如何使用Nullif()函数来处理空值 5160876 查询空值(NULL)的技巧 5170877 利用关键字DISTINCT去除重复记录 5170878 巧用TOP子句获取信息 5180879 巧用CONTAINS谓词检索信息 5180880 通过ISNULL替换信息 5190881 比较COMPUTE和GROUP BY 5190882 如何对指定时间段进行查询 5190883 对某期间的数据进行查询的几种方法 5190884 NOT与谓词进行组合条件的查询 52019.6 聚合函数 5200885 聚合函数SUM的使用 5200886 聚合函数AVG的使用 5210887 如何使用聚合函数MAX 5210888 如何使用聚合函数MIN 5220889 如何使用聚合函数COUNT 5220890 如何使用聚合函数First或Last 52319.7 子查询与连接查询 5230891 union与连接之间的区别 5230892 如何应用IN查询表中的记录信息 5240893 使用一个单行的子查询来更新列 5240894 使用IN引入子查询限定查询范围 5240895 在UPDATE语句中应用子查询 5250896 如何应用子查询 5250897 EXISTS与子查询联合应用 5250898 在FROM子句中的子查询 5250899 在DELETE语句中应用子查询 5260900 子查询与聚合函数的应用 5260901 有效使用内连接 5260902 如何使用LEFT OUTER JOIN查询 5260903 如何使用RIGHT OUTER JOIN查询 5270904 利用CASE语句查询结果 52719.8 交叉表 5280905 Access中利用TRASFORM分析数据 5280906 Access中利用TRASFORM动态分析数据 5290907 SQL Server实现静态交叉表 5290908 SQL Server实现动态交叉表 53119.9 常用数据操作 5320909 如何对字符串进行查询 5320910 如何进行单条数据的添加 5330911 如何进行批量数据的添加 5330912 如何对数据进行修改 5340913 如何对数据进行删除 5340914 对数据库数据进行局部删除 53419.10 高级应用 5350915 如何使用临时表 5350916 如何查询表中的列名 5350917 在查询中如何防止输入指定符串 5360918 查询指定长度的数据 5360919 获取当前数据库的详细信息 5370920 在查询过程中灵活定义与使用别名 53819.11 视图、存储过程和触发器的使用 5380921 如何正确认识视图 5380922 如何获取数据库中的全部用户视图 5390923 如何通过视图修改数据 5390924 如何正确理解存储过程 5400925 如何获取数据库中的全部存储过程 5400926 如何正确认识触发器 5410927 Update触发器在系统日志中的应用 5420928 触发器的嵌套使用 5420929 获取数据库中的触发器 54319.12 其他 5440930 在查询程序中使用变量 5440931 对查询结果进行排序 5440932 批量获取结果集信息 5450933 对查询结果生成表 5450934 实现数据类型转换 5460935 获取当前数据库的登录用户名 5460936 如何正确理解数据库键字 5460937 将结果转换为XML形式 5470938 追加查询结果到已存在的表 5470939 利用对多个表中的字段创建新记录集 5470940 利用EXECUTE执行SQL语句 548第20章 数据库技术 54920.1 Access数据库的使用 5500941 如何为Access数据库设置密码 5500942 如何创建加密的Access数据库 5500943 建立Access数据库连接 5510944 与加密后的Access数据库建立连接 5510945 如何提取Access数据库中的数据表名 5510946 随机读取Access数据库记录 5520947 将Access数据库导入到Excel中(ASP.NET) 5520948 在.NET 2.0框架下动态创建Access数据库 5530949 在.NET 2.0框架下动态创建Access数据表 5530950 如何备份Access数据库 55420.2 SQL数据库的使用 5540951 建立SQL Server数据库连接 5540952 如何使用ODBC访问SQL Server数据库 5550953 读取SQL Server数据表结构 5560954 在C#中分离SQL Server数据库 5570955 C#中附加SQL Server数据库 5580956 C#中附加单文件SQL Server数据库 5590957 备份SQL Server数据库 5590958 还原SQL Server数据库 5600959 开启SQL Server数据库服务 5610960 断开SQL Server数据库服务 5620961 如何判断SQL Server数据库连接状态 5620962 获取连接SQL Server数据库的名称 5630963 获取SQL Server的连接统计数据 5630964 如何调用SQL Server存储过程 5630965 如何生成SQL数据库脚本 5640966 SQL Server 2000无法安装的解决办法 56520.3 其他 5650967 如何判断记录是否为NULL 5650968 建立Oracle数据库连接 5660969 如何在数据表中设置主键 5660970 DataSet读取XML文件中数据作为数据源 5670971 如何读取Fox的DBF文件 5670972 通用方法实现数据增、删、改功能 5670973 通用方法获取查询结果DataSet数据集 5680974 同时查询多条SQL语句 5680975 如何判断是否查询到结果 5680976 将图片以二进制格式存储到数据库中(asp.net) 5690977 从DataReader对象读取数据的技巧 5690978 随机显示数据库记录 5690979 通过DataTable获得数据表的主键 5690980 将Access数据库转化为SQL Server数据库 5700981 将SQL Server数据库转化为Access数据库 5710982 如何避免数据库死锁现象 5720983 如何调用带输入参数的存储过程 5720984 如何获取存储过程返回的结果集 5730985 取得数据表某个单元格的值 5730986 在ASP.NET2.0下将数据绑定DropDownList 5730987 在ADO.NET中实现数据库的事务处理 5740988 将任意文件保存到数据库中 5740989 将存储在数据库中的文件提取出来 5750990 合并具有相同数据表结构的查询结果 5750991 使用DataTable进行数据检索 5750992 使用DataView对数据进行检索和排序 5760993 使用DataSet建立DataTable明细表 576第21章 打印与报表技术 57921.1 报表设计技术 5800994 如何快速创建水晶报表 5800995 如何编写带图片的报表 5820996 如何使图片成为整个报表的背景 5830997 如何设置水晶报表中节的背景图片 5830998 如何设置水晶报表中节的背景色 5840999 如何设置水晶报表的页面 5841000 如何在报表中添加节 5841001 如何在报表中移动节的顺序 5851002 如何在报表中合并节 5851003 如何在报表中册除节 5851004 如何在报表中显示与隐藏节 5861005 如何设置多列样式报表 5861006 如何设置报表中节的高度 5871007 如何设置报表的摘要信息 5871008 如何设置报表的打印日期与时间 58721.2 报表格式化类对象技巧 5881009 如何在报表中使用文本对象 5881010 如何移动对象操作 5881011 如何对齐多个对象 5891012 如何使用公式字段 5891013 如何在报表中使用线 5901014 如何在报表中使用方框 59021.3 报表数据排序与分组技巧 5911015 如何排序报表数据 5911016 如何报表数据分组 5911017 如何报表中筛选数据 5921018 如何对分组报表中的页码进行设置 59221.4 报表的应用技巧 5931019 如何在水晶报表中使用交叉表 5931020 如何在水晶报表中使用子报表 5941021 如何动态显示子报表 5961022 如何删除子报表 5971023 如何在报表中计算百分比 59721.5 Windows打印控件应用技巧 5991024 如何使用PrintDocument控件打印窗体数据 5991025 如何使用PrintPreviewContronl控件预览 5991026 使用PrintPreviewDialog对话框 6001027 如何使用PrintDialog对话框打印 6011028 如何使用PageSetupDialog对话框设置页面 6011029 如何使用PrintDocument控件打印文本文件 602第22章 C#高级应用开发 60522.1 线程的使用 6061030 如何开始一个线程 6061031 如何结束一个线程 6061032 如何使线程休眠 6061033 如何挂起一个线程 6061034 如何判断线程的状态 6061035 如何实现线程的同步 6071036 如何避免死锁 60722.2 .NET 2.0的新特性 6071037 如何使用泛型 6071038 如何使用匿名方法 6081039 如何使用迭代器 6091040 如何使用分部类 61022.3 C#WebService 6101041 建立SQL Server返回数据集WebService 6101042 利用WebService传送图片 61122.4 文件监视 6111043 如何监视文件的创建 6111044 如何监视文件的改变 6121045 如何监视文件的重命名 6121046 如何监视文件的删除 61322.5 C#高级应用 6131047 如何将聊天程序做成Windows服务 6131048 COM+服务解决同时访问大量数据并发性 6151049 COM+服务实现银行转账系统 6171050 如何用Remoting技术传送文件 6191051 大规模数据访问时缓解服务器压力 620第23章 硬件及相关开发技术 62323.1 语音卡、IC卡、神龙卡的使用 6241052 利用语音卡拨
名:《C#开发实战宝典》(清华大学出版社.王小科等) PDF格式扫描版,全书分为30章,共733页。2010年1月出版。 (注:原书无书签,为了方便阅读,本人制作了详细完整的书签) 因文件较大,全书压缩打包成2部分,这是第1部分。 内容简介   全书共分30章,主要内容包括初探C#及其开发环境,认识C#代码结构,C#程序设计基础,选择结构控制,循环结构控制,字符及字符串,数组、集合与哈希表,面向对象程序设计,Windows窗体设计,Windows应用程序常用控件,Windows应用程序高级控件,对话框、菜单、工具栏及状态栏,数据库编程基础,ADO NET数据访问技术,DataGridView数据控件,面向对象编程高级技术,枚举类型与泛型,LINQ技术的使用,文件及I/O,GDI+绘图技术,水晶报表与打印,网络编程,线程的使用,异常处理与程序调试,Windows应用程序打包部署,企业QQ系统,餐饮管理系统,房屋中介管理系统,企业人事管理系统,进销存管理系统等。 本书适合有志于从事软件开发的初学者、高校计算机相关专业学生和毕业生,也可作为软件开发人员的参考手册,或者高校的教学参考书。 目 录 第1部分 新手入门 第1章 初探C#及其开发环境 第2章 认识C#代码结构 第3章 C#程序设计基础 第4章 选择结构控制 第5章 循环结构控制 第6章 字符及字符串 第7章 数组、集合与哈希表 第8章 面向对象程序设计 第9章 Windows窗体设计 第10章 Windows应用程序常用控件 第11章 Windows应用程序高级控件 第12章 对话框、菜单、工具栏及状态栏控件 第13章 数据库编程基础 第14章 ADO NET数据访问技术 第15章 DataGridView数据控件 第2部分 高手进阶 第16章 面向对象编程高级技术 第17章 枚举类型与泛型 第18章 LINQ技术的使用 第19章 文件及I/O 第20章 GDI+绘图技术 第21章 水晶报表与打印 第22章 网络编程 第23章 线程的使用 第24章 异常处理与程序调试 第25章 Windows应用程序打包部署 第3部分 项目实战 第26章 企业QQ系统 第27章 餐饮管理系统 第28章 房屋中介管理系统 第29章 企业人事管理系统 第30章 进销存管理系统 附录A 菜单栏命令 附录B C#程序编码规范
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值