《C#开发实战1200例 第2卷》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:王小科,王军编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:7302251552
  • 页数:826 页
图书介绍:

第1篇 鼠标与键盘控制篇 2

第1章 鼠标操作控制 2

1.1获取鼠标信息 3

实例001获取鼠标双击时间间隔 3

实例002获取光标闪烁的频率 4

实例003获取鼠标键数 4

实例004显示鼠标的等待光标 5

实例005获得鼠标在窗体上的位置 6

实例006记录鼠标行为 7

实例007通过截取系统消息判断鼠标的单击键 8

1.2鼠标基本设置 10

实例008定义鼠标指针形状 10

实例009自定义鼠标的图片 11

实例010自定义动画鼠标 12

实例011交换鼠标左右键功能 14

实例012限制鼠标在某一区域工作 15

实例013屏蔽鼠标按键 16

实例014鼠标设置器 21

1.3鼠标操作在实际中的应用 24

实例015隐藏和显示鼠标 24

实例016鼠标双击窗体时模拟键盘Tab键操作 25

实例017使用鼠标拖放复制文本 26

实例018利用鼠标绘图 27

实例019模拟鼠标操作 28

实例020 实现鼠标穿透窗体 30

第2章 键盘操作控制 32

2.1获取键盘信息 33

实例021获取组合键 33

实例022获取功能键 34

实例023判断NumLock键和CapsLock键是否锁定 34

实例024将回车键转换为Tab键 36

2.2键盘热键的设置 37

实例025屏蔽Alt+F4组合键关闭窗体 37

实例 026实现按下Esc键关闭窗体 38

实例027屏蔽系统的Ctrl+C/XN组合键 39

实例028避免按回车键产生“嘀”声 40

实例029设置/屏蔽系统热键 41

2.3键盘操作在实际中的应用 48

实例030打开和关闭输入法编辑器 48

实例031使用键盘控制窗体的移动 49

实例032虚拟键盘操作 51

实例033多功能键盘 60

第2篇Windows系统开发篇 66

第3章 获取系统相关信息 66

3.1获取计算机系统信息 67

实例034获取系统时间 67

实例035获取系统目录 68

实例036获取计算机名称 68

实例037获取当前程序运行目录 69

实例038获得操作系统版本号 70

实例039获取系统启动后经过的时间 71

实例040获取任务栏尺寸 72

实例041改变系统提示信息 73

实例042获取系统环境变量 74

3.2获取计算机硬件信息 76

实例043获取计算机内存信息 76

实例044获取CPU相关信息 78

实例045获取主板相关信息 79

实例046获得硬盘序列号 80

实例047获取所有逻辑分区 81

实例048获取磁盘空间 82

实例049获得磁盘的文件系统类型 83

实例050判断驱动器类型并获取其属性 84

实例051获取显示设备的名称及PNPDeviceID 86

实例052获取声音设备的名称及PNPDeviceID 87

实例053获取屏幕的分辨率 88

实例054获取系统己经安装的打印机信息 89

3.3获取系统网络信息 90

实例055得到本地机器的IP地址 90

实例056检测计算机是否存在网络连接 92

实例057判断计算机的联机状态 92

3.4获取特殊文件夹路径 94

实例058获取系统特殊文件夹路径 94

实例059得到本地运行的EXE的路径 96

实例060获取映射驱动器路径 97

3.5获取Windows当前用户信息 97

实例061获取当前用户 97

实例062判断当前用户是哪种用户 98

3.6获取Windows日志信息 100

实例063获取系统日志信息 100

实例064获取安全日志信息 102

实例065获取应用程序日志信息 103

实例066创建并写入自定义日志信息 104

实例067向系统日志写入自定义数据 105

实例068向应用程序日志写入自定义信息 106

第4章 系统控制应用 107

4.1启动相关 108

实例069进入Windows前发出警告 108

实例070将计算机设置为休眠状态 109

实例071禁止用户关闭计算机 110

实例072实现注销、关闭和重启计算机 111

实例073定时关闭计算机 114

实例074远程关闭与重启计算机 117

4.2磁盘相关设置 120

实例075取消磁盘共享 120

实例076检测磁盘是否准备好 121

实例077图表显示磁盘容量 122

实例078修改磁盘格式 124

实例079格式化磁盘 125

4.3系统设置 126

实例080禁止使用Windows任务管理器 126

实例081为文件新增右键菜单项 127

实例082修改计算机的默认打印机 128

实例083通过注册表设置桌面背景 129

实例084利用API设置桌面背景 130

实例085音乐风景桌面 132

实例086设置系统任务栏时间 135

实例087设置屏幕分辨率 137

实例088修改计算机名称 138

实例089显示器控制 139

实例090屏幕放大镜 141

4.4系统隐藏 143

实例091隐藏、显示任务栏 143

实例092隐藏、显示开始按钮 145

实例093使桌面图标文字透明 146

实例094检索系统中正在运行的任务 147

实例095隐藏、显示桌面图标 148

4.5系统控制 150

实例096切换输入法 150

实例097全角半角转换 151

实例098制作系统挂机锁 154

实例099开机启动项管理 158

实例100启动Windows系统服务 159

实例101执行命令行命令 161

4.6系统监控 162

实例102检测系统启动模式 162

实例103监视剪贴板的内容 163

实例104内存使用状态监控 164

实例105键盘钩子屏蔽热键 165

实例106 CPU使用率 167

第5章 程序控制应用 170

5.1程序控制 171

实例107打开控制面板中的程序 171

实例108动态系统托盘图标 172

实例109控制程序不出现在任务栏上 174

实例110启动屏幕保护 175

实例111使用回车键控制鼠标焦点 176

实例112在TextBox控件中禁用鼠标右键 177

实例113制作屏幕截图程序 178

实例114复制程序本身 180

实例115 分段显示电话号码颜色 181

5.2程序运行 182

实例116使用互斥量禁止程序运行多次 182

实例117使用进程名禁止程序运行多次 183

实例118清空回收站 185

5.3计算机控制 186

实例119设置系统仅能运行的程序 186

实例120获取本地计算机上所有的进程 187

实例121获取远程计算机上所有的进程 189

实例122调用外部的EXE文件 190

实例123关闭外部己开启的程序 191

实例124进程管理器 192

实例125实现行业软件系统注销功能 195

实例126创建应用程序快捷方式 195

实例127使PC喇叭发音 197

第3篇 数据库及LINQ开发篇 200

第6章SQL查询相关技术 200

6.1 SELECT子句 201

实例128查询特定列数据 201

实例129使用列别名 202

实例130在列上加入计算 204

实例131使用函数设置条件 205

6.2查询常量 206

实例132查询数字 206

实例133查询字符串 207

实例134查询日期数据 208

实例135查询逻辑型数据 210

实例136查询空(或NULL)数据 211

6.3查询变量 212

实例137利用变量查询字符串数据 212

实例138利用变量查询数值型数据 214

实例139利用变量查询日期型数据 215

6.4模糊查询 217

实例140利用“_”通配符进行查询 217

实例141利用“%”通配符进行查询 218

实例142利用“”通配符进行查询 219

实例143利用“?”通配符进行查询 221

实例144复杂的模糊查询 222

6.5 TOP和PERCENT限制查询结果 224

实例145查询前10名数据 224

实例146取出数据统计结果的后10名数据 225

实例147查询第10到第20名的数据 226

实例148查询销售量占前50%的图书信息 228

实例149查询库存数量占后20%的图书信息 229

6.6数值查询 231

实例150判断是否为数值 231

实例151在查询时对数值进行取整 232

实例152将查询到的数值四舍五入 233

实例153使用三角函数计算数值 234

实例154求数值的绝对值 235

实例155根据生成的随机数查询记录 236

实例156根据查询数值的符号显示具体文本 238

6.7字符串查询 239

实例157实现字符串的大小写转换 239

实例158返回字符在字符串中出现的次数 240

实例159返回字符串中的子串 241

实例160删除字符串中的子串 243

实例161查找并替换字符串 244

实例162比较两个字符串 246

6.8周期、日期查询 248

实例163判断是否为日期 248

实例164查询指定日期的数据 249

实例165查询指定时间段的数据 250

实例166按年、月或日查询数据 251

实例167返回当前日期时间及其对应的星期 253

实例168查询指定时间间隔的数据 254

6.9比较、逻辑、重复查询 255

实例169利用运算符查询指定条件的数据 255

实例170 NOT与谓词进行组合条件的查询 257

实例171查询时不显示重复记录 258

实例172列出数据中的重复记录和记录条数 259

6.10在查询中使用OR和AND运算符 260

实例173利用OR运算符进行查询 260

实例174利用AND运算符进行查询 261

实例175同时利用ORAND运算符进行查询 262

6.11排序、分组统计 263

实例176数据分组统计(单列) 263

实例177在分组查询中使用ALL关键字 265

实例178在分组查询中使用CUBE运算符 266

实例179在分组查询中使用ROLLUP 267

实例180对数据进行降序查询 268

实例181对数据进行多条件排序 269

实例182对统计结果进行排序 270

实例183按姓氏笔画排序 272

实例184按姓氏拼音排序 273

实例185按仓库分组统计图书库存(多列) 274

实例186多表分组统计 275

实例187使用COMPUTE 276

实例188使用COMPUTE BY 278

6.12聚合函数 279

实例189利用聚合函数SUM对销售额进行汇总 279

实例190利用聚合函数AVG求某班学生的平均年龄 280

实例191利用聚合函数M求销售额、利润最少的商品 281

实例192利用聚合函数MAX求月销售额完成最多的员工 283

实例193利用聚合函数COUNT求日销售额大于某值的商品数 284

实例194利用聚合函数 FIRST或LAST求数据表中第一条或最后一条记录 286

实例195利用聚合函数显示数据库中重复记录的数量 287

实例196查询大于平均值的所有数据 288

实例197获取无重复或者不为空的记录数 290

实例198随机查询求和 291

实例199统计某个值出现的次数 292

6.13多表查询(连接查询) 293

实例200利用FROM子句进行多表查询 293

实例201使用表别名 295

实例202合并多个结果集 296

实例203笛卡儿乘积查询 297

6.14嵌套查询 298

实例204简单嵌套查询 298

实例205复杂嵌套查询 299

实例206嵌套查询在查询统计中的应用 301

6.15子查询 302

实例207用子查询做派生的表 302

实例208用子查询作表达式 304

实例209使用ALL谓词引入子查询 305

实例210使用ANY/SOME谓词引入子查询 307

实例211使用EXISTS运算符引入子查询 308

实例212在HAVING子句中使用子查询过滤数据 310

实例213在UPDATE语句中应用子查询 311

实例214使用子查询删除数据 312

6.16组合语句 314

实例215使用组合查询 314

实例216多表组合查询 316

实例217对组合查询后的结果进行排序 317

实例218获取组合查询中两个结果集的交集 319

实例219获取组合查询中两个结果集的差集 320

6.17内连接查询 321

实例220简单内连接查询 321

实例221复杂内连接查询 322

实例222使用INNER JO实现自身连接 324

实例223使用INNER JO实现等值连接 325

实例224使用INNER JO实现不等连接 326

实例225使用内连接选择一个表与另一个表中行相关的所有行 327

6.18外连接查询 329

实例226 LEFT OUTER JO查询 329

实例227 RIGHT OUTER JO查询 330

实例228使用外连接进行多表联合查询 331

6.19利用进行查询 333

实例229用查询表中的记录信息 333

实例230使用引入子查询限定查询范围 334

实例231使用NOT 运算符引入子查询 335

6.20交叉表查询 336

实例232利用Transform分析数据(Access) 336

实例233利用Transform动态分析数据(Access) 338

实例234静态交叉表(SQL Server 2005) 340

实例235动态交叉表(SQL Server 2005) 342

6.21函数查询 343

实例236在查询语句中使用格式化函数 343

实例237在查询语句中使用字符串函数 344

实例238在查询中使用日期函数 346

6.22索引查询 347

实例239使用UNIQUE关键字创建唯一索引 347

实例240使用CLUSTERED关键字创建聚簇索引 348

实例241使用索引视图查询数据 350

实例242删除索引 352

6.23应用存储过程 353

实例243使用存储过程查询多表中的数据 353

实例244使用存储过程向表中添加数据 355

实例245使用存储过程删除表中的数据 358

6.24 HAVG语句应用 361

实例246利用HAVING子句过滤分组数据 361

实例247 HAVING子句应用在多表查询中 362

第7章SQL高级应用 364

7.1 SQL中的流程控制语句 365

实例248使用BEGINEND语句控制批处理 365

实例249使用IF语句指定执行条件 366

实例250使用IF EXISTS语句检测数据是否存在 367

实例251使用WHILE语句执行循环语句块 368

实例252使用CASE语句执行分支判断 369

实例253使用RETURN语句执行返回 371

实例254使用WAITOF语句延期执行语句 372

实例255使用GOTO语句实现跳转 373

实例256使用TRY CATCH语句进行异常处理 375

实例257使用PRINT语句进行打印 376

实例258使用RAISERROR语句返回错误信息 377

实例259使用SET语句进行选项设置 378

7.2视图的应用 379

实例260在C#中应用视图 379

实例261获取数据库中的全部用户视图 380

实例262通过视图修改数据 380

实例263通过视图过滤数据 382

实例264使用视图格式化检索到的数据 383

实例265对视图定义文本进行加密 384

实例266使用视图生成计算列 385

7.3存储过程的应用 387

实例267 C#中应用存储过程 387

实例268应用存储过程添加数据 388

实例269应用存储过程修改数据 390

实例270应用存储过程删除数据 391

实例271获取数据库中全部的存储过程 392

实例272在存储过程中使用return定义返回值 394

实例273执行带回传参数的存储过程 395

实例274重命名存储过程 396

实例275在存储过程中使用事务 397

实例276加密存储过程 399

实例277查看存储过程的相关信息 400

7.4触发器的应用 401

实例278获取数据库中的触发器 401

实例279使用Insert触发器向薪水表中添加薪水信息 402

实例280 Update触发器在系统日志中的应用 404

实例281使用Delete触发器删除员工薪水信息 405

实例282触发器的嵌套使用 406

实例283使用递归触发器实现每次删除一条记录功能 408

实例284使用触发器删除相关联的两表间的数据 409

7.5事务的使用 411

实例285使用事务同时提交多个数据表 411

实例286使用隐式事务实现多表提交数据 413

实例287使用事务批量删除生产单信息 414

实例288在事务中的表级锁定 417

实例289实现事务的并发控制 420

实例290创建分布式事务 422

7.6游标的应用 423

实例291创建一个标准、只读和更新游标 423

实例292利用sp- cursor list查看游标属性 425

实例293利用spdescribe- cursor查看游标全局特性 426

实例294利用游标在商品销售表中返回指定行数据 428

实例295使用ORDER BY子句改变游标中行的顺序 429

实例296使用游标定位删除指定员工信息 431

实例297使用参数化游标更改员工部门信息 432

实例298使用嵌套游标查询两个员工表间的员工信息 433

7.7 SQL Server与XML互操作 435

实例299使用FOR XML RAW参数读取所有图书信息 435

实例300将存储在XML中的图书信息插入数据表中 436

实例301将图书销售表中的字段作为节点元素输出 437

实例302查询存储图书信息的XML节点 439

实例303获取XML节点或者元素值 440

实例304编辑存储图书信息的XML节点 441

实例305将XML节点转换为相应的数据表字段 444

第8章ADONET开发技术 446

8.1连接Access数据库 447

实例306连接Access数据库 447

实例307连接加密的Access数据库 448

实例308自动识别Access 2000数据库路径 449

实例309连接网络上共享的Access 2000数据库 450

实例310将Access数据库导入Excel文件中 452

8.2连接SQL Server数据库 453

实例311使用ODBC DSN连接SQL Server数据库 453

实例312使用ODBC非DSN连接SQL Server数据库 455

实例313使用OLE DB连接SQL Server数据库 457

实例314建立SQL Server数据库连接 458

8.3连接其他数据库 459

实例315 连接Excel 459

实例316连接文本文件 460

8.4数据库结构的读取与修改 462

实例317读取SQL Server数据库结构 462

实例318修改SQL Server数据库结构 464

8.5数据录入 466

实例319利用数据绑定控件录入数据 466

实例320使用ADONET对象录入数据 467

实例321利用SQL语句录入数据 469

实例322利用存储过程录入数据 470

实例323向SQL Server数据库中批量写入海量数据 472

8.6图片存取技术 473

实例324使用存取文件名的方法存取图片 473

实例325使用二进制存取用户头像 475

8.7数据修改 476

实例326利用数据绑定控件修改数据 476

实例327利用数据对象修改数据 478

实例328利用SQL语句修改数据 479

实例329利用存储过程修改数据 480

实例330使用断开式连接批量更新数据库中数据 482

8.8数据保存前判断 483

实例331判断是否重复输入数据 483

实例332 判断输入数据是否符合要求 485

8.9数据删除 487

实例333删除表格中指定的记录 487

实例334利用SQL语句删除数据 488

实例335利用SQL语句清空数据表 489

8.10数据记录 490

实例336分页显示信息 490

实例337移动记录 491

实例338综合查询职工详细信息 492

8.11数据维护 495

实例339在C#中创建数据库 495

实例340在C#中删除数据库 497

实例341在C#中创建数据表 498

实例342在C#中删除数据表 499

实例343在C#中分离SQL Server数据库 500

实例344在C#中附加SQL Server数据库 502

实例345在C#中附加单文件SQL Server数据库 503

8.12数据备份恢复 504

实例346备份SQL Server数据库 504

实例347还原SQL Server数据库 506

8.13其他数据库开发技术 509

实例348判断计算机中是否安装了SQL软件 509

实例349开启SQL Server数据库 510

实例350断开SQL Server数据库与其他应用程序的连接 511

实例351利用SQL语句执行外围命令 512

实例352对软件进行初始化 513

实例353带图像列表的系统登录程序 515

第9章LINQ to Objects——查询内存中对象 517

9.1 LINQ基础应用 518

实例354使用隐式类型局部变量实现字母的大小写转换 518

实例355使用自动实现属性记录用户信息 519

实例356使用对象初始化器创建对象并为其属性赋值 520

实例357使用Lambda表达式查找指定字符串 521

实例358使用扩展方法显示员工信息 522

实例359在线程中使用匿名方法防止窗体“假死” 524

实例360使用Predicate委托查找年龄大于30的员工 525

实例361使用Action委托实现遍历所有员工信息 526

实例362使用Func委托实现计算所有员工工资总和 527

9.2限定符操作 528

实例363检查序列中所有元素是否都满足指定条件 528

实例364检查序列中是否包含指定元素 529

9.3元素操作 531

实例365获取指定位置的元素 531

实例366使用LINQ生成随机序列 532

实例367使用LINQ初始化数组 533

实例368使用LINQ在一个循环中遍历多个数组 534

实例369筛选指定类型的元素 535

实例370使用LINQ实现销售单查询 536

实例371获取某类商品最后一次销售单价 538

9.4使用LINQ操作字符串 539

实例372使用LINQ生成字符串 539

实例373查找字符串中包含的大写字母 540

实例374查找字符串中包含的数字字符 541

实例375过滤文章中包含指定单词的句子 542

实例376统计每个单词在文章中出现的次数 543

实例377查找文章中以ing结尾的单词 544

实例378将字符串数组按元素长度分组 547

9.5类型转换操作 548

实例379将数据源转换为IEnumerable﹤T>类型 548

实例380将数据源转换为IQueable﹤T>类型 549

实例381转换为泛型列表 550

实例382转换为字典类型 551

实例383转换为一对多字典 552

实例384使用LQ转换序列或集合 554

9.6使用LINQ操作集合 556

实例385操作泛型列表List﹤T> 556

实例386操作泛型排序列表SortedList﹤TKey,TValue> 557

实例387操作泛型双向链表LinkedList﹤T> 558

实例388操作泛型队列Queue﹤T> 559

实例389操作泛型堆栈Stack﹤T> 561

实例390操作泛型哈希集HashSet﹤T> 562

实例391操作泛型字典Dictiona﹤TKey,TValue> 563

实例392操作泛型通用集合Collection﹤T> 565

实例393操作泛型绑定列表BindingList﹤T> 566

9.7使用LINQ技术操作对象 567

实例394使用LQ技术对对象进行筛选操作 567

实例395使用LQ技术对对象进行投影操作 568

实例396使用LQ技术对对象进行排序操作 570

实例397使用LQ技术对对象进行聚合操作 572

实例398使用LQ技术对对象进行集合操作 574

实例399使用LINQ技术对对象进行元素操作 576

实例400使用LINQ技术对对象进行联接操作 577

实例401使用LINQ技术获取文件详细信息 579

第10章LINQ to SQL——查询关系数据库 581

10.1数据查询 582

实例402查询单表数据 582

实例403获取与Not Exists等价的语句 585

实例404按多个字段降序排序数据表 586

实例405关联查询多表数据 587

实例406按照多个条件分组 588

实例407实现LQ动态查询的方法 589

10.2聚合操作 591

实例408 Count操作——统计每种商品的销售次数 591

实例409 Sum操作——统计每种商品的销售总额 592

实例410 Max操作——统计每种商品的最高销售价 593

实例411 Min操作——统计每种商品的最低销售价 594

实例412 Average操作——统计每种商品的销售均价 595

实例413 Aggregage操作——统计月销售额 596

10.3集合操作 597

实例414 Distinct操作——去除重复的返货记录 597

实例415差集操作——获取从未返过货的商品列表 598

实例416交集操作——获取有过返货记录的商品列表 599

实例417并集操作——查询每种商品的销售总数 600

10.4 DataContext类的方法 601

实例418检测数据库是否存在 601

实例419直接执行SQL查询 602

10.5数据操作 603

实例420生成LQ to SQL对象模型 603

实例421获取数据库连接信息 606

实例422使用LQ技术查询SQL数据库中的数据 608

实例423使用LQ技术向SQL数据库中添加数据 610

实例424使用LQ技术在SQL数据库中修改数据 611

实例425使用LQ技术在SQL数据库中删除数据 612

实例426使用存储过程查询单表数据 613

实例427使用SQL Server中的函数过滤数据 615

实例428根据外键获取主表信息 616

实例429使用LQ为列表控件提供数据 617

实例430使用LQ技术防止SQL注入式攻击 618

实例431使用LQ技术实现数据分页 620

第11章LINQ to DataSet——查询ADO.NET数据集 623

11.1数据查询 624

实例432使用LQ技术查询DataSet中的单个表 624

实例433使用LINQ技术对DataSet进行投影操作 625

实例434使用LQ技术查询DataSet中的多个表 626

实例435使用LQ技术对DataSet进行筛选操作 627

实例436使用LQ技术对DataSet进行排序操作 628

11.2数据分区操作 629

实例437从头开始提取指定数量的记录 629

实例438从头开始提取满足指定条件的记录 631

实例439跳过序列中指定数量的记录 632

实例440跳过满足指定条件的记录 633

11.3类型转换操作 634

实例441将查询结果转换为DataTable 634

实例442将查询结果转换为DataView 635

11.4其他操作 636

实例443聚合操作——按客户分组汇总销售金额 636

实例444使用LQ技术对DataSet进行元素操作 637

实例445使用LQ技术查询前5名数据 639

实例446使用LQ技术对数据进行排序 640

实例447使用LQ技术统计员工的工资总额 641

第12章LINQ to XML一一操作XML文件 643

12.1 XML文件基本操作 644

实例448使用LQ技术创建XML文件 644

实例449使用LQ技术对XML文件进行读取 645

12.2查询操作 647

实例450查找根元素 647

实例451查找指定名称的元素 648

实例452查找指定属性的元素 649

实例453遍历指定节点下的所有对象 650

实例454只返回指定节点下的注释 652

实例455访问指定节点的父节点 653

实例456返回节点集合中每个节点的所有上级节点 654

实例457返回节点集合中每个节点的所有下级节点 656

实例458返回元素集合中每个元素的所有属性 657

12.3元素操作 659

实例459使用LINQ技术向XML文件中添加数据 659

实例460使用LINQ技术修改XML文件中的数据 660

实例461替换指定节点下的所有元素 661

实例462使用LINQ技术删除XML文件中的数据 662

实例463合计XML元素值 664

12.4属性操作 665

实例464添加属性到XML文件 665

实例465修改元素的属性值 666

实例466删除一个元素的所有属性 667

实例467将文件中的属性转换为元素 669

12.5其他操作 670

实例468添加注释到XML文件 670

实例469添加声明到XML文件 671

实例470添加文档类型到XML文件 672

实例471使用LQ to XML转换XML 673

实例472读取XML文件并更新到数据库 676

第4篇 水晶报表与打印篇 680

第13章Windows打印组件的使用 680

13.1打印基础 681

实例473打印窗体中的数据 681

实例474图像打印 683

实例475自定义横向或纵向打印 684

实例476自定义打印页码范围 686

实例477分页打印 688

13.2常用报表的打印 690

实例478打印条形码 690

实例479打印学生个人简历 691

实例480打印一个空学生证 693

实例481打印商品入库单据 695

实例482批量打印学生证书 697

第14章 水晶报表设计技术 701

14.1水晶报表基本设置 702

实例483快速创建水晶报表 702

实例484设计带图片的水晶报表 704

实例485使图片成为整个报表的背景 706

实例486设置水晶报表中节的背景图片 707

实例487设置水晶报表中节的背景色 709

实例488在水晶报表中添加图表 710

实例489设置水晶报表的页面 713

实例490在水晶报表中添加节 714

实例491在水晶报表中移动节的顺序 715

实例492在水晶报表中合并节 716

实例493在水晶报表中删除节 717

实例494在水晶报表中显示与隐藏节 718

实例495设置多列样式水晶报表 719

实例496设置水晶报表中节的高度 721

实例497设置水晶报表的摘要信息 722

实例498设置水晶报表的打印日期与时间 723

14.2水晶报表的格式化 724

实例499在水晶报表中使用文本对象 724

实例500使用公式字段 726

实例501在水晶报表中使用线 728

实例502在水晶报表中使用方框 729

14.3对水晶报表进行排序与分组 730

实例503排序水晶报表中的数据 730

实例504对水晶报表中的数据进行分组 731

实例505在水晶报表中筛选数据 732

实例506设计分组统计报表 734

实例507对分组报表中的页码进行设置 735

第15章 水晶报表开发应用 737

15.1水晶报表常用应用 738

实例508利用报表专家设计并显示学生基本信息 739

实例509动态绑定水晶报表 742

实例510在水晶报表中使用Access数据库 743

实例511在水晶报表中使用SQL Server数据库 745

实例512高数成绩大于90分使用红色字体标记 746

实例513订货总金额超过10万元显示“恭喜获奖”文字 748

实例514薪资大于或等于1万元使用蓝色字体标记 750

实例515 筛选薪资大于2000元的男员工 752

实例516按类别分组统计图书库存 754

实例517按成绩总分降序排序 755

实例518部门销售量占公司总销售量的业绩百分比 757

实例519在水晶报表中使用交叉表 758

15.2子报表的使用 760

实例520插入子报表 760

实例521编辑与重新导入子报表 761

实例522根据需要显示子报表 763

实例523删除子报表 765

15.3使用水晶报表设计常用报表 766

实例524设计信封标签报表 766

实例525设计商品入库报表 767

实例526设计学生个人简历报表 768

实例 527设计汇款单式报表 769

第5篇 注册表操作篇 772

第16章 注册表基本操作 772

16.1注册表基本操作 773

实例528获取注册表信息 773

实例529向注册表中写入信息 774

实例530修改注册表信息 776

实例531搜索注册表内容 777

实例532 删除注册表信息 778

实例533备份注册表 780

实例534还原注册表 781

实例535禁止远程修改注册表 782

实例536禁止运行注册表 783

16.2注册表在实际中的应用 784

实例537使用C#打开Windows注册表 784

实例538建立数据文件与程序的关联 785

实例539使应用程序开机自动运行 786

实例540在注册表中保存窗体的大小和位置 788

实例541优化开关机速度 789

实例542优化菜单显示速度 790

实例543优化网上邻居显示速度 791

实例544获取本机安装的软件清单 792

第17章 系统个性化设置 793

17.1开始菜单设置 794

实例545启用和禁用“开始”菜单中的“运行”功能 794

实例546屏蔽和开启“开始”菜单中的“关机”功能 795

实例547在右键菜单中添加“用记事本打开”项 796

17.2个性桌面 797

实例548隐藏桌面快捷方式图标的小箭头 797

实例549禁用和启用主题选项卡 798

实例550禁用和启用外观选项卡 799

实例551禁用和启用屏幕保护选项卡 800

实例552设置任务栏时间样式 801

实例553删除“我的电脑”上下文菜单中的“属性” 802

17.3系统设置 803

实例554将磁盘驱动器隐藏 803

实例555禁止显示任务栏的右键菜单 804

实例556禁止对任务栏位置进行改变 806

实例557禁止使用Windows任务管理器 807

实例558禁止使用控制面板的添加删除程序 808

实例559禁止使用命令提示符 809

实例560关机时自动关闭停止响应的程序 810

第18章IE浏览器设置 811

18.1 IE浏览器基本设置 812

实例561隐藏桌面上的IE浏览器图标 812

实例562禁止修改IE浏览器主页 814

实例563设置IE浏览器的默认主页 815

实例564修改IE浏览器标题栏内容 816

实例565设置IE地址栏的自动完成功能 817

18.2 IE浏览器高级应用 818

实例566向收藏夹中添加网址 818

实例567清除IE地址栏中的历史网址 819

实例568设置IE浏览器的默认下载路径 821

实例569清空IE浏览器的缓存区 822

实例 570使用WebBrowser控件制作IE浏览器 823

第6篇 软件安全控制篇 828

第19章 加密与解密技术 828

19.1数据的加密与解密 829

实例571异或算法对数字进行加密与解密 829

实例572使用MD5算法加密数据 830

实例573使用ROT13算法加密解密数据 831

实例574使用恺撒密码算法加密密码 833

实例575对数据报进行加密保障通信安全 834

实例576使用one-time pad算法加密数据 839

实例577使用伪随机数加密技术加密用户登录密码 840

实例578以XML格式导入导出密钥 842

实例579以参数格式导入导出密钥 844

19.2文件的加密与解密 846

实例580文本文件加密与解密 846

实例581利用图片加密文件 849

实例582对文件进行加密保护 851

实例583使用口令加密可执行文件 856

实例584使用对称算法加密解密文件 860

第20章 数据库安全技术 863

20.1连接加密的数据库 864

实例585连接加密的Access数据库 864

实例586连接加密的Excel文件 865

实例587访问带验证模式的SQL Server数据库 866

20.2数据库安全在实际中的应用 868

实例588编程修复Access数据库 868

实例589 Access数据库备份与恢复 869

实例590加密数据库中的数据 871

实例591加密DataSet数据集 873

实例592防止SQL注入式攻击 875

第21章 软件安全控制 877

21.1软件的注册 878

实例593利用文件对软件进行注册 878

实例594利用注册表设计软件注册程序 880

实例595利用网卡序列号设计软件注册程序 882

实例596根据CPU序列号和磁盘卷标制作软件注册机 884

21.2软件的加密 886

实例597制作一个EXE文件加密器 886

实例598限制软件的使用次数 890

实例599使用强名称标识软件 892

实例600软件加壳常用工具及使用 893

第1篇C#编程基础篇 2

第1章C#开发环境的使用 2

1.1 Visual Studio开发环境的安装与配置 3

实例001配置合适的Visual Studio 2008开发环境 3

实例002设置程序代码行号 4

实例003使开发环境全屏显示 5

实例004根据需要创建所需解决方案 6

1.2 Visual Studio开发环境的使用 7

实例005为程序设置版本和帮助信息 7

实例006设置Windows应用程序启动窗体 8

实例007统一窗体中控件的字体设置 9

实例008通过“格式”菜单布局窗体 10

1.3快速开发项目必备 10

实例009为项目添加DLL文件引用 10

实例010为项目添加已有类 11

实例011为项目添加第三方控件 12

实例012为项目添加已有窗体 13

第2章C#语言基础应用 15

2.1代码的注释 16

实例013对单行代码进行注释 16

实例014快速对多行代码进行注释 17

实例015使用“”标记给代码段添加说明 18

2.2运算符的使用 20

实例016使用引号运算符进行赋值 20

实例017使用算术运算符开发简单计算器 21

实例018使用“?”运算符对数字进行加密 22

实例019巧用位移运算符获取汉字编码值 24

实例020使用条件运算符判断指定年份是不是闰年 25

实例021使用流程控制语句报销业务花销 26

2.3关键字的使用 27

实例022使用checked关键字处理“溢出”错误 27

实例023使用peof关键字获取类的内部结构 28

实例024使用using关键字有效回收资源 29

实例025使用is关键字检查对象是否与给定类型兼容 30

实例026使用as关键字将对象转换为指定类型 32

2.4流程控制语句的使用 34

实例027小明去学校和医院分别要走哪条路 34

实例028利用条件语句判断用户登录身份 35

实例029判断指定月份属于哪个季节 36

实例030使用switch语句更改窗体颜色 37

实例031循环向控制台中输入内容 38

实例032递归算法的经典面试题 39

实例033制作一个数字猜猜看小游戏 40

实例034使用goto语句在数组中搜索指定图书 42

第3章 字符串处理技术 44

3.1字符及字符串转换 45

实例035将字母全部转换为大写或小写 45

实例036字母与ASC码的转换 46

实例037汉字与区位码的转换 48

实例038将汉字转换为拼音 49

3.2常用字符及字符串操作 50

实例039根据标点符号对字符串进行分行 50

实例040判断用户输入的用户名是否正确 51

实例041将字符串的每个字符进行颠倒输出 52

实例042去掉字符串中的所有空格 54

实例043从字符串中分离文件路径、文件名及扩展名 55

实例044获取字符串中汉字的个数 57

实例045批量替换某一类字符串 58

实例046对字符串进行加密与解密 59

3.3常用数字处理技术 61

实例047判断输入的货币值是否为数字 61

实例048对计算结果进行四舍五入 62

实例049商品金额的大小写转换 63

实例050设置货币值中使用的小数位数 64

实例051格式化输入数据为货币格式 65

实例052开发一个进制转换器 67

3.4日期时间格式的数据处理 67

实例053动态获得系统当前日期和时间 67

实例054手动设置系统日期时间 69

实例055根据生日自动计算员工年龄 70

实例056根据年份判断十二生肖 71

实例057获取当前日期是星期几 72

实例058获取当前年的天数 73

实例059获取当前月的天数 74

实例060取得当前日期的前一天 75

实例061将日期格式化为指定格式 76

实例062使用DateDi方法获取日期时间的间隔数 77

实例063使用DateAdd方法向指定日期添加一段时间间隔 78

实例064使用TimeSpan对象获取时间间隔 80

实例065使用Sleep方法延迟时间 81

实例066如何确定程序的运行时间 82

实例067使用ParseExact方法将字符串转化为日期格式 84

实例068使用ToString方法格式化日期 85

实例069使用ToDateTime方法转换日期显示格式 86

3.5常用数字验证技巧 87

实例070使用正则表达式验证电话号码 87

实例071使用正则表达式验证输入密码条件 88

实例072使用正则表达式验证邮政编号 89

实例073使用正则表达式验证手机号 89

实例074使用正则表达式验证身份证号 90

实例075使用正则表达式验证两位小数 91

实例076使用正则表达式验证一年的12个月份 92

实例077使用正则表达式验证一个月的31天 93

实例078使用正则表达式验证数字输入 94

实例079使用正则表达式验证密码长度 95

实例080使用正则表达式验证非零的正整数 96

实例081使用正则表达式验证非零的负整数 97

3.6常用字符验证技巧 98

实例082使用正则表达式验证大写字母 98

实例083使用正则表达式验证小写字母 99

实例084使用正则表达式检查字符串中重复出现的词 99

实例085使用正则表达式替换字符串 101

实例086使用正则表达式拆分字符串 102

实例087使用正则表达式验证输入字母 102

实例088使用正则表达式验证中文汉字输入 103

实例089使用正则表达式验证输入字符串 104

3.7网络验证应用技巧 105

实例090使用正则表达式验证E-mail格式 105

实例091使用正则表达式验证IP地址 106

实例092使用正则表达式验证URL 107

第4章 数组和集合的使用 109

4.1数组的基本操作 110

实例093获取多维数组的行数与列数 110

实例094按指定条件在数组中检索元素 111

实例095在数组中添加一个元素 112

实例096在数组中添加一个数组 113

实例097不改变长度删除数组中的元素 115

实例098删除数组元素后改变其长度 116

4.2常用数组排序算法 117

实例099使用选择排序法对一维数组进行排序 117

实例100使用冒泡排序法对一维数组进行排序 118

实例101使用快速排序法对一维数组进行排序 119

实例102使用直接插入法对一维数组进行排序 121

实例103使用希尔排序法对一维数组进行排序 122

实例104使用Sort方法对数组进行快速排序 124

实例105反转数组中元素的顺序 125

4.3常用集合的使用 126

实例106向班级集合中添加学生信息 126

实例107使用哈希表对XML文件进行查询 127

实例108计算两个矩形矩阵的乘积 129

第5章 面向对象编程技术 131

5.1属性和方法 132

实例109使用属性存储用户编号和姓名 132

实例110通过定义方法求一个数的平方 133

实例111使用重载方法实现不同类型数据的计算 135

5.2结构与类 136

实例112通过结构计算矩形的面积 136

实例113通过类继承计算梯形面积 137

实例114封装类实现一个简单的计算器 139

实例115 使用面向对象思想查找字符串中的所有数字 140

5.3面向对象技术高级应用 141

实例116自定义抽象类计算圆形的面积 141

实例117利用接口实现选择不同的语言 143

实例118使用密封类密封用户信息 145

实例119通过重写虚方法实现加法运算 146

实例120通过类的多态性确定人类的说话行为 147

5.4迭代器和分部类的使用 149

实例121使用迭代器显示公交车站点 149

实例122使用迭代器实现倒序遍历 150

实例123使用迭代器实现文字的动态效果 151

实例124使用分部类实现多种计算方法 153

实例125使用分部类记录学生信息 155

5.5泛型的使用 156

实例126使用泛型存储不同类型的数据列表 156

实例127通过泛型查找不同数组中的值 158

实例 128通过继承泛型类实现输出学生信息 159

实例129通过泛型实现子窗体的不同操作 160

实例130使用泛型去掉数组中的重复数字 161

第6章 数据结构与算法 163

6.1数据结构的实现 164

实例131单向链表的实现 164

实例132双向链表的实现 168

实例133堆栈的实现 173

实例134队列的实现 175

实例135树的实现 177

6.2常见算法的实际应用 180

实例136计算1+22+33+44++++nn的值 180

实例137计算10!的值 181

实例138求最大公约数 181

实例139求最小公倍数 182

实例140判断素数的算法 183

实例141按要求生成指定位数编号 184

实例142身份证号从15位升到18位的算法 186

实例143歌德巴赫猜想的算法实现 187

实例144八皇后问题的算法实现 188

实例145百钱百鸡的算法实现 190

实例146韩信点兵的算法实现 191

实例147实现斐波纳契数列求和 192

实例148求水仙花数的算法实现 193

实例149约瑟夫环问题的算法实现 194

实例150 C#实现杨辉三角算法 195

实例151如何将B转换成GB、 MB和KB 196

实例152 0~N位数的任意组合 197

实例153在数组中快速查找近似值 199

实例154猴子选大王算法的实现 200

实例155使用MD5算法对密码进行加密 201

实例156恺撤密码算法的实现 202

第2篇Windows窗体篇 206

第7章Windows窗体基础 206

7.1设置窗体位置 207

实例157控制窗体加载时的位置 207

实例158设置窗体在屏幕中的位置 208

实例159从上次关闭位置启动窗体 209

实例160始终在桌面最顶层显示的窗体 210

7.2设置窗体大小 211

实例161限制窗体大小 211

实例162根据桌面大小调整窗体大小 212

实例163自定义最大化、最小化和关闭按钮 213

实例164手动改变自制窗体的大小 215

实例165禁止改变窗体的大小 218

7.3设置窗体的标题栏 218

实例166使窗体标题栏文字右对齐 218

实例167没有标题栏也可以更改窗体的大小 219

实例168设置闪烁的标题栏 220

7.4设置窗体的背景 221

实例169设置窗体背景颜色为淡蓝色 221

实例170设置窗体背景为指定图片 222

实例171使背景图片自动适应窗体的大小 223

实例172使背景图片在窗体中居中显示 224

实例173使背景图片在窗体中平铺显示 225

实例174清空窗体的背景 226

第8章 特色窗体界面 227

8.1导航菜单界面 228

实例175创建类似OutLook的窗体 228

实例176带导航菜单的主界面 229

实例177图形化的导航界面 230

8.2特殊形状的窗体 232

实例178创建非矩形窗体 232

实例179建立字体形状窗体 233

实例180使控件大小随窗体自动调整 234

实例181带分隔栏的窗体 234

8.3窗体效果 235

实例182制作半透明渐显窗体 235

实例183使窗体背景色渐变 236

实例184随机更换主界面背景 237

实例185磁性窗体的设计 238

实例186制作鼠标穿透窗体 246

实例187窗体换肤程序 247

8.4窗体动画 250

实例188窗体中的滚动字幕 250

实例189动画显示窗体 251

实例190制作类似Office的提示精灵 252

实例191动画形式的程序界面 254

8.5特色程序界面 255

实例192仿QQ抽屉式窗体 255

实例193设计软件启动界面 257

实例194以树型显示的程序界面 259

实例195动态按钮的窗体界面 260

第9章 窗体控制技术 262

9.1窗体控制技术 263

实例196以全屏方式显示程序窗体 263

实例197通过子窗体刷新父窗体 264

实例198拖动无边框窗体 265

实例199禁用窗口上的关闭按钮 267

实例200向窗体中拖放图片并显示 268

实例201使应用程序在进程中消失 269

9.2其他窗体技术 270

实例202在关闭窗体时弹出确认对话框 270

实例203隐藏应用程序在任务栏中的图标 272

实例204实现动态系统托盘图标 272

实例205实现气泡提示窗口 275

实例206从桌面右下角显示的Popup窗口提醒 276

实例207设置可执行文件的生成图标 278

第10章MDI窗体和继承窗体 279

10.1 MDI窗体的使用 280

实例208设置窗体为父窗体 280

实例209使子窗体最大化显示 281

实例210对子窗体进行水平排列 282

实例211对子窗体进行垂直排列 283

实例212对子窗体进行层叠排列 284

10.2继承窗体的使用 285

实例213使用继承选择器创建继承窗体 285

实例214以编程方式创建继承窗体 286

实例215 修改继承窗体中的控件属性 287

第3篇 控件应用篇 290

第11章Windows常用控件的使用 290

11.1按钮控件的使用 291

实例216轻松打造绚丽按钮 291

实例217给Buon控件创建快捷键 292

实例218使Buon控件大小自动适应文本长度 293

实例219得到鼠标焦点后自动放大的Button按钮 294

实例220动态创建多个Buon控件 295

11.2 TextBox控件应用 296

实例221制作多行文本框 296

实例222制作密码文本框 297

实例223在TextBox控件中显示回车符 297

实例224只允许输入数字的TextBox控件 298

实例225在TextBox控件底端显示下划线 299

实例226屏蔽TextBox控件上的粘贴功能 300

实例227屏蔽TextBox控件上默认的右键菜单 301

11.3 ComboBox控件应用 302

实例228设置ComboBox控件的默认选项为第一项 302

实例229将数据表中的字段添加到ComboBox控件中 303

实例230在ComboBox下拉列表中显示图片 304

实例231用ComboBox控件制作浏览器网址输入框 305

实例232 实现带查询功能的ComboBox控件 306

11.4 RichTextBox控件应用 308

实例233在RichTextBox控件中添加超链接文字 308

实例234在RichTextBox控件中插入图片 309

实例235在RichTextBox控件中显示RTF格式的文件 310

实例236使用RichTextBox控件保存文件 312

实例237为RichTextBox控件添加自定义滚动条 313

实例238在RichTextBox控件中实现关键字描红 314

实例239在RichTextBox控件中替换文本文字 315

实例240在RichTextBox控件中实现项目符号功能 316

实例241设置RichTextBox控件中的文本对齐方式 318

11.5 ListBox控件应用 319

实例242在ListBox控件中实现选择项功能 319

实例243选中ListBox控件中全部条目 320

实例244对ListBox控件中的数据进行排序 321

实例245在ListBox控件中查找指定项 322

实例246将数据库数据添加到组合框中 323

实例247在ListBox控件间交换数据 324

实例248借助绑定控件实现数据选择录入 325

11.6 ListView控件应用 326

实例249 ListView控件间的数据移动 326

实例250将数据库数据添加到ListView控件 327

实例251在ListView控件中实现修改功能 328

实例252在ListView控件中对数据排序 330

实例253在ListView控件中绘制底纹 331

实例254在列表视图中拖动视图项 332

实例255使ListView控件中的选择项高亮显示 333

实例256制作带复选框的ListView控件 335

11.7选择类控件应用 336

实例257利用选择控件实现权限设置 336

实例258利用选择控件实现复杂查询 337

11.8 TreeView控件应用 339

实例259在TreeView控件节点中显示图片 339

实例260实现带复选框的TreeView控件 340

实例261将数据库数据显示到树视图中 341

实例262用树型列表动态显示菜单 342

实例263用TreeView控件遍历磁盘目录 344

实例264修改TreeView控件的节点文本 345

实例265将XML文件节点绑定到TreeView控件中 346

11.9选项卡控件的使用 347

实例 266更改选项卡的显示样式 347

实例267添加多个选项卡 348

实例268获取选中的选项卡名称 349

实例269删除指定的选项卡 350

11.10菜单应用实例 351

实例270为菜单添加快捷键 351

实例271设置菜单项是否可用 352

实例272将菜单项的字体设置为粗体 353

实例273创建级联菜单 354

实例274级联菜单的动态合并 355

实例275带历史信息的菜单 356

实例276像开始菜单一样漂亮的菜单 357

实例277制作任务栏托盘菜单 357

实例278可以拉伸的菜单 358

实例279仿XP系统的任务栏菜单 360

11.11工具栏设计 361

实例280带图标的工具栏 361

实例281带背景图片的工具栏 362

实例282设计浮动工具栏 363

实例283带下拉菜单的工具栏 364

实例284具有提示功能的工具栏 364

11.12状态栏设计 365

实例285在状态栏中显示复选框 365

实例286在状态栏中显示当前系统操作员 366

实例287在状态栏中实时显示当前系统时间 367

实例288带进度条的状态栏 368

实例289制作动画效果的状态栏 369

第12章Windows高级控件的使用 371

12.1对话框组件的使用 372

实例290获得弹出对话框的相关返回值 372

实例291使用OpenFileDialog组件打开文件 373

实例292设置OpenFileDialog组件中只能选择图片文件 374

实例293使用OpenFileDialog组件打开多个文件 375

实例294使用SaveFileDialog组件保存文件 376

实例295使用FolderBrowserDialog组件选择文件夹 377

实例296设置FolderBrowserDialog组件的默认路径 378

实例297使用FontDialog组件设置字体 379

实例298使用ColorDialog组件设置字颜色 380

12.2 Timer组件的使用 381

实例299使用Timer组件制作计时器 381

实例300使用Timer组件显示当前系统时间 382

实例301使用Timer组件制作左右飘动的窗体 383

实例302使用Timer组件实现世界杯倒计时 384

实例303使用Timer组件实现人物动画效果 385

12.3 EventLog组件 386

实例304使用EventLog组件读写事件日志 386

实例305使用EventLog组件保存Windows系统日志 388

实例306使用EventLog组件向本机现有日志中添加条目 389

12.4其他常用控件的典型应用 391

实例307使用MaskedTextBox控件实现输入验证 391

实例308制作日历计划任务 392

实例309在ProgressBar控件中显示进度百分比 394

实例310使用BackgroundWorker组件执行异步操作 395

实例311使用ErrorProvider组件验证文本框输入 398

实例312使用FileSystemWatcher组件监视日志文件 399

实例313使用HelpProvider组件调用帮助文件 401

实例314使用Process组件访问本地进程 402

实例315使用ServiceController组件控制计算机服务 403

实例316使用ImageList组件制作动画图片 406

实例317使用DirectoEnt组件建立虚拟目录 407

12.5常用控件控制技术 409

实例318程序运行时智能增减控件 409

实例319多控件焦点循环移动 410

实例320使用控件的Tag属性传递信息 412

实例321为控件设置快捷键 413

12.6控件焦点变换 414

实例322按回车键变换控件焦点 414

实例323程序运行时拖动控件 415

实例324控件得到焦点时变色 417

第13章DataGridView数据控件 418

13.1 DataGdView控件基本设置 419

实例325设置DataGdView控件中网格线的样式 419

实例326设置DataGdView控件中字体的样式 419

实例327在DataGdView控件中设置数据显示格式 420

实例328设置DataGdView单元格的文本对齐方式 421

实例329在DataGdView控件中验证数据输入 422

实例330在DataGdView的单元格中启用换行 423

实例331禁止DataGdView控件中添加和删除行 424

实例332禁用DataGdView控件列表头自动排序功能 425

13.2 DataGdView控件实用开发 426

实例333对DataGdView控件进行数据绑定 426

实例334 DataGdView选中单元格时整个行背景变色 427

实例335在DataGdView控件中隔行换色 429

实例336在DataGdView控件中实现下拉列表 430

实例337在DataGdView控件中显示图片 431

实例338为DataGridView控件实现复选功能 431

实例339在DataGridView控件中添加“合计”和“平均值” 433

实例340使用主从表查看生产单详细信息 434

实例341将DataGridView中数据导出到Word 435

实例342将DataGridView中数据导出到Excel 437

实例343像Excel一样复制DataGridView中数据 439

实例344从DataGridView中拖放数据到TreeView 443

第14章 自定义用户控件 447

14.1重绘Windows标准控件 448

实例345美化ComboBox控件下拉列表 448

实例346美化单选按钮控件 449

实例347美化复选框控件 453

实例348重绘ListBox控件 455

14.2自定义Windows控件 457

实例349自定义水晶按钮控件 457

实例350自制数值文本框组件 461

实例351设计带行数和标尺的RichTextBox控件 466

实例352自制平滑进度条控件 471

实例353制作Vista风格的日历 473

实例354 DataGridView和BindingSource复合控件 477

第4篇 文件操作篇 482

第15章 文件基本操作 482

15.1获取文件基本信息 483

实例355获取文件的大小 483

实例356获取文件扩展名 484

实例357获取文件创建时间 485

实例358获取文件最后一次修改时间 486

实例359获取文件名禁止使用的字符 487

15.2创建和删除文件 488

实例360创建和删除文件 488

实例361生成随机文件名或文件夹名 489

实例362建立临时文件 490

实例363根据日期动态建立文件 491

实例364清空回收站中的所有文件 492

15.3查找文件 493

实例365检查文件是否存在 493

实例366获取文件夹下所有子文件夹及文件的名称 494

实例367搜索文件 496

15.4修改文件 497

实例368修改文件属性 497

实例369修改文件及目录的名字 498

实例370将长文件名转换成短文件名 499

实例371文件批量更名 500

15.5复制文件 502

实例372使用 FileStream复制大文件 502

实例373复制文件时显示复制进度 504

实例374批量复制文件 506

15.6指定类型的文件操作 507

实例375使用C#操作文件 507

实例376使用C#操作XML文件 509

实例377创建PDF文档 513

15.7其他 514

实例378获取窗口文本 514

实例379判断文件是否正在被使用 516

实例380 C#中实现文件拖放 517

实例381根据内容对文件进行比较 518

实例382获取文件夹中的图标资源 519

实例383将一个文件分割成多个小文件 521

实例384将多个小文件合并为一个文件 523

第16章 文件夹基本操作 525

16.1获取文件夹信息 526

实例385获得文件夹创建时间 526

实例386获取临时文件目录 527

实例387获取应用程序所在目录 527

实例388得到系统当前目录 528

实例389获取路径名禁止使用的字符 529

16.2文件夹操作 530

实例390判断指定文件夹是否存在 530

实例391创建文件夹 531

实例392以当前日期时间为根据创建文件夹 532

实例393移动文件夹 533

实例394删除文件夹 533

实例395获取所有逻辑磁盘目录 534

实例396获取指定文件夹的上级目录 537

实例397使用递归法删除文件夹中的所有文件 538

实例398对指定文件夹中的文件进行分类存储 539

实例399伪装文件夹 540

第17章 文件流操作 544

17.1文件的读取和写入 545

实例400创建一个文件用于写入UTF-8编码的文本 545

实例401 OpenRead方法打开现有文件并读取 546

实例402 OpenWte方法打开现有文件并进行写入 547

实例403打开现有UTF-8编码文本文件并进行读取 549

实例404读取文件中的第一行数据 550

实例405按行读取文本文件中的数据 550

实例406读取文件中的所有数据 551

实例407向文件中写入追加数据 552

17.2常用的文件流操作 553

实例408将文本文件转换成网页文件 553

实例409读写内存流数据 555

实例410创建并写入二进制文件数据 556

实例411读取二进制文件中的内容 558

实例412使用缓冲流复制文件 559

实例413解析只有一种格式的文本文件 560

实例414解析含有多种格式的文本文件 562

第18章 加密、解密及解压缩文件 565

18.1加密与解密文件 566

实例415 对文本文件进行加密与解密 566

实例416利用图片对文件进行加密与解密 569

实例417使用ROT13算法加密解密文件 571

实例418使用对称算法加密解密文件 573

实例419使用口令加密可执行文件 575

18.2压缩和解压缩文件 579

实例420如何使用GZip压缩文件 579

实例421如何使用GZip解压文件 580

实例422如何使用WinRAR压缩文件 582

实例423如何使用WinRAR解压文件 583

实例424批量压缩和解压缩文件 585

第5篇C#与Office高效开发篇 590

第19章C#与Word互操作 590<