第1章 从零开始:应用程序的基本生成技巧 1
1-1 如何建立独立可执行文件.EXE 1
1-2 如何指定.EXE的输出位置 1
1-3 如何指定启动对象 2
第2章 旧观念,新做法:VB.NET的面向对象程序设计 5
2-1 概论 5
2-1.1 定义一个类 6
2-1.2 建立构造函数与析构函数 8
2-1.3 建立与终结一个对象 9
2-1.4 使用System.Object 11
2-1.5 了解继承 11
2-2 如何建立类与对象 15
2-3 如何定义与使用属性 19
2-4 如何使用继承 21
2-5 如何建立与使用共用成员 24
2-6 模块与类有何差异 28
2-7 结构与类有何差异 28
2-7.1 关于container类 31
2-7.2 内存消耗 31
2-7.3 独立的实例 32
2-7.4 效率 32
2-7.5 事件处理 34
2-7.6 结构范例 34
2-7.7 类范例 35
2-7.8 结论 36
第3章 往下扎根:深谈VB.NET的程序语言 37
3-1 如何调用Windows API 37
3-2 如何以.NET Framework类替换Windows API调用 55
3-3 如何明确取得所在平台的Windows操作系统版本 77
3-4 善用String类来处理字符串 80
3-4.1 String类方法的类型 80
3-4.2 字符串与Nothing 81
3-4.3 字符串的比较 82
3-4.4 在您的字符串中查找字符或子字符串 82
3-4.5 根据现有的字符串来建立一个新字符串 83
3-5 使用StringBuilder提高字符串处理效率 96
3-5.1 长度、容量与最大容量 100
3-5.2 附加字符串 102
3-5.3 附加格式化的字符串 103
3-5.4 插入字符串 103
3-5.5 移除特定数目的字符 104
3-5.6 字符串替换 104
3-6 我需要使用StringWriter类吗 105
3-7 如何格式化字符串数据 108
3-8 日期时间的加减运算与比较 127
3-8.1 什么是DateTime结构 127
3-8.2 什么是TimeSpan结构 130
3-8.3 日期时间的加减与比较运算 133
3-9 给我高效率的运算符,其余免谈 143
3-10 便利的算术运算符 146
3-11 您真的了解除法与实数吗 146
3-12 数组使用注意事项 150
3-13 对象数组的建立、排序以及二进制查找 161
3-14 如何使用ToArray方法返回一个强类型数组 171
3-15 如何建立一个自定义的集合类 173
3-16 直接在For与For Each循环语句中声明循环的控制变量 179
3-17 如何拦截与处理异常 180
3-18 活用规则运算式 185
4-1 如何建立一个继承窗体 199
第4章 VB的新衣:Windows Form窗体与控件 199
4-1.1 以编写代码的方式来继承窗体 200
4-1.2 以可视化方式来继承窗体 200
4-1.3 存取层级 202
4-1.4 实现演练 205
4-1.5 继承与覆写事件过程 210
4-2 如何建立MDI应用程序 211
4-2.1 SDI vs MDI应用程序 212
4-2.2 实际建立MDI应用程序 213
4-2.3 MDI父窗体与MDI子窗体如何互动 215
4-3 建立与使用强制回应对话框 219
4-4 如何建立透明的窗体 224
4-5 如何建立非矩形的窗体与控件 226
4-6 没有控件数组的日子怎么过 233
4-6.1 共用事件程序 234
4-6.2 循环处理控件 236
4-6.3 于执行阶段添加控件 237
4-6.4 于执行阶段添加事件过程 238
4-7 如何管理多个最顶层窗体 247
4-8 如何让窗体在系统任务栏的提示区中显示成单一图标 259
4-9 如何让Label控件显示出多行文字 263
4-10 如何使TextBox控件中的字符在输入的同时立即转换成大写 264
4-11 如何验证用户输入 265
4-11.1 如何使用控件的Validating事件来验证用户输入 266
4-11.2 使用ErrorProvider控件 268
4-12 建立自定义的验证类 272
4-13 建立使用规则运算式的TextBox验证类 292
4-14 如何将图片显示于RichTextBox控件中 299
4-15 如何将图片显示在窗体上 300
4-16 如何于Windows Form窗体上绘制线条与形状 304
4-17 如何以程序控制方式变更StatusBarPanel对象的色彩与字体 308
4-18 如何于窗体上建立文字或图片超链接 312
4-19 如何替ListBox与ComBoBox添加项目 315
4-20 ComboBox与ListBox控件的数据绑定 317
4-21 如何清除已绑定之ListBox、ComboBox或CheckedListBox控件的项目 332
4-22 如何自定义ListBox的选取模式 333
4-23 如何自定义ComboBox控件 337
4-24 如何能够单击数据行的行首文字来排序ListView控件 340
4-25 如何使用一个ComboBox控件来编辑ListView控件中的数据 347
4-26 如何替TreeView控件中的TreeNode加上工具提示文字 354
4-27 如何替TreeView控件中不同类型的节点显示出不同的内容菜单 357
4-28 如何替TreeView控件的节点建立一个Key属性 364
4-29 如何于TreeView控件中进行拖放操作 368
4-30 结合TreeView、Splitter与ListView控件建立一个目录扫描界面 373
4-31 结合TreeView、Splitter与ListView控件建立一个类似Windows资源管理器的用户界面 381
4-32 如何将DataGrid控件绑定至一个内含对象的数组 393
4-33 如何将DataGrid控件绑定至一个内含对象的ArrayList 396
4-34 如何格式化DataGrid控件 398
4-34.1 于设计阶段设置格式属性 398
4-34.2 使用数据表样式与数据行样式 400
4-34.3 于设计阶段使用数据表样式与数据行样式 404
4-34.4 在执行阶段使用数据表样式与数据行样式 412
4-35 如何使用数据表样式与数据行样式去格式化数据来源为一个对象数组的DataGrid控件 422
4-36 如何使用数据表样式与数据行样式去格式化数据来源为一个ArrayList的DataGrid控件 424
4-37 使用自定义的数据行样式类来格式化DataGrid控件的数据行 426
4-38 如何扩充DataGridTextBoxColumn以便在DataGrid控件中显示与编辑自定义格式数据 447
4-39 如何扩充DataGridTextBoxColumn以便使多个关联数据表的数据同时显示在DataGrid控件中的各个数据行中 450
4-40 如何将DataGrid控件的某一个数据列隐藏起来 454
4-41 如何存取DataGrid控件之活动单元格的属性 456
4-42 如何将DataGrid控件数据行的宽度设置成刚好完整显示字段中最长的数据内容 459
4-43 如何制作一个能够逐页滚动DataGrid控件的用户界面 463
4-44 如何动态指定搜寻字段并同步化DataGrid控件与搜寻结果 468
4-45 如何以程序控制方式排序DataGrid控件中的数据行 482
4-46 如何以程序控制方式筛选DataGrid控件中的数据行 484
4-47 如何使用DataGrid控件建立一对多界面 486
4-48 如何使用两个DataGrid控件建立一对多界面 490
4-49 如何于DataGrid控件中使用ComboBox控件来编辑单元格数据 491
4-50 如何于DataGrid控件中加总数据列的数值数据 494
4-50.1 建立用户控件DataGridControlVB 496
4-50.2 如何于窗体上使用DataGridControlVB用户控件 507
4-51 如何动态设置DataGrid控件中的哪一个数据表可以被编辑 511
4-52 如何在窗体载入时让某一个控件取得焦点 515
4-53 如何于控件中捕捉按键 516
4-54 剪贴簿的数据撷取与存入 519
4-54.1 将数据存入剪贴簿 519
4-54.2 从剪贴簿撷取数据 520
4-55 如何执行拖放操作 531
4-55.1 拖放操作是如何运作的 532
4-55.2 拖曳文字 533
4-55.3 拖曳一个图片 537
4-55.4 拖放文件 540
4-55.5 在两个窗体之间来回拖放项目 542
4-55.6 在两个TreeView之间来回拖放节点 545
4-56 如何使用多重窗体 548
4-56.1 全局窗体 548
4-56.2 传送您的窗体 549
4-56.3 存取其他窗体的成员 550
第5章 界面的重要元素:菜单 559
5-1 如何动态切换菜单 559
5-2 如何建立用户绘制菜单 560
第6章 磁盘、文件夹与文件的处理技巧 571
6-2 路径指定方式 572
6-1 概观 572
6-3 如何取得逻辑磁盘与容量信息 573
6-4 如何列举目录 576
6-5 如何取得文件的相关信息 582
6-6 如何建立目录 590
6-7 如何移除一个目录 591
6-8 如何复制文件 592
6-9 如何更改文件的名称 594
6-10 如何删除文件 594
6-11 如何使一个文件成为只读的或是可读取及写入 595
6-12 如何从文本文件读取数据 596
6-13 如何将文本数据写入文本文件 602
6-14 如何建立一个文本文件 604
6-15 如何读取一个二进制文件 607
6-16 如何将数据写入一个二进制文件 609
6-17 如何比较两个文件的内容是否完全相同 611
6-18 如何使用FileSystemWatcher组件来监视文件系统事件 613
6-19 如何建立与使用临时文件 616
第7章 互补有无:谈与Office应用程序的互动 619
7-1 如何自动化Microsoft Word并建立一个新文件 619
7-2 如何将RTF文件显示于RichTextBox控件中并检查英文拼写是否正确 624
7-3 如何将DataSet中的数据导出至Excel并加以计算 627
7-4 如何使用自动化建立一个Microsoft Excel宏 629
7-5 如何从一个自动化用户端去处理PowerPoint 2003事件 632
第8章 基础架构方面的开发议题 641
8-1 如何自动根据文件的扩展名或类型来启动相关联的应用程序并载入文件 641
8-2 如何关闭其他应用程序或其他应用程序的特定实例 643
8-3 如何得知所启动的进程已经结束执行 645
8-4 如何等待所启动的进程执行完毕 647
8-5 如何以程序控制方式启动默认的浏览器 649
8-6 如何通过HTTP来传送与接收数据 651
8-7 如何使用通讯端口 657
8-8 如何撰写程序来传送邮件 659
8-8.1 环境设定与疑难排解 659
8-8.2 撰写技巧 662
8-9 如何产生与比较杂凑值(Hash Value) 667
8-10 如何加密与解密文本文件 670
第9章 探索Visual Basic 2005程序语言新功能 677
9-1 从My谈起 679
9-2 My.Application对象 680
9-3 My.Computer对象 683
9-4 My.Computer.Audio对象 683
9-5 My.Computer.Clipboard对象 685
9-6 My.Computer.Clock对象 689
9-7 My.Computer.FileSystem对象 689
9-7.1 取得磁盘信息 690
9-7.2 读取文本文件 692
9-7.3 剖析文本文件 693
9-7.4 写入文本文件 696
9-7.5 读取二进制文件 697
9-7.6 写入二进制文件 698
9-7.7 取得目录信息 698
9-7.8 取得文件信息 699
9-7.9 目录维护操作 702
9-7.10 文件维护操作 705
9-8 My.Computer.SpecialDirectories对象 706
9-9 My.Computer.Info对象 706
9-10 My.Computer.Keyboard对象 708
9-11 My.Computer.Mouse对象 712
9-12 My.Computer.Network对象 712
9-13 My.Computer.Ports对象 719
9-14 My.Computer.Registry对象 722
9-15 My.Forms对象 724
9-16 My.Log对象 726
9-17 My.Request对象 727
9-18 My.Response对象 727
9-19 My.Resources对象 727
9-20 My.Settings对象 730
9-21 My.User对象 735
9-22 My.WebServices对象 738
9-23 Continue语句 739
9-24 IsNot运算符 741
9-25 Using语句 742
9-26 明确指定数组的0下限 746
9-27 声明一个拥有混合存取范围的属性 746
9-28 Unsigned类型 747
9-28.1 UInteger数据类型 748
9-28.2 ULong数据类型 749
9-28.3 UShort数据类型 750
9-28.4 SByte数据类型 751
9-28.5 如何调用一个接收Unsigned类型的Win32 API函数 751
9-29 Global关键字 753
9-30 TryCast关键字 754
9-31 运算符多载 756
9-32 自定义事件 758
9-33 应用程序层级事件 761
结论 763
附录 范例安装与使用说明 765
安装MSDE 2000 765
安装范例数据库并复制范例项目 766
使用范例文件 767