第1章你好,Windows Forms 1
1.1从头开始学习Windows Forms 1
1.2 Visual Studio.NET中的Windows Forms 6
1.3布置控件 12
1.4控件 15
1.5应用程序设置 17
1.6资源 21
1.7对话框 24
1.8绘图 27
1.9打印 29
1.10数据绑定 30
1.11多线程用户界面 33
1.12部署 35
1.13本章小结 36
第2章窗体 37
2.1显示窗体 37
拥有者窗体和附属窗体 38
2.2窗体生命周期 40
窗体打开阶段 41
窗体变为非活动窗体以及重新激活窗体 43
窗体关闭阶段 44
2.3窗体通知行为 46
闪动通知 46
系统托盘通知 47
只存在于系统托盘的应用程序 49
2.4窗体大小和位置 51
限制窗体大小 55
窗体的Z-Order顺序 56
2.5窗体修饰 57
2.6透明窗体 58
非矩形窗体 59
2.7窗体和快捷菜单 62
快捷菜单 67
2.8工具条 69
2.9状态条 71
2.10多文档界面应用程序 74
2.11可视化继承 84
2.12本章小结 86
第3章对话框 87
3.1标准对话框 87
3.2窗体风格 89
在运行时获得窗体是处于模式状态还是非模式状态 90
3.3数据交换 91
处理OK按钮和Cancel按钮 92
非模式窗体数据 96
3.4数据验证 97
正则表达式和数据验证 98
掩码文本输入和数据验证 99
数据格式通知功能 100
组合验证 101
整体验证 102
3.5实现帮助功能 106
工具提示条 106
使用ErrorProvider提供通用信息 107
处理帮助按钮和F1键 109
使用HTML帮助 111
编译好的HTML帮助 113
使用HelpProvider组件 116
显示帮助目录、索引和搜索 117
3.6本章小结 117
第4章布局 119
4.1固定布局 119
位置和大小 119
控件的Z-Order顺序 124
控件的Tab键顺序 125
4.2动态布局 126
锚定 127
停靠 129
停靠和Z-Order顺序 131
工具条控件的停靠功能 133
自动改变大小 141
自动缩放 142
4.3布局控件 145
分隔控件 146
分组 147
流式布局 148
TableLayoutPanel 151
4.4布局优化 153
4.5自定义布局 154
4.6本章小结 155
第5章绘图基础功能 157
5.1绘制到屏幕上 157
处理Paint事件 158
触发Paint事件 159
5.2颜色 161
预定义颜色 163
颜色转换 165
5.3画刷 165
实颜色画刷 166
纹理画刷 166
模式画刷 167
线性渐变画刷 168
路径渐变画刷 170
5.4画笔 172
线的帽子 174
虚线 175
笔对齐 176
连接点 177
从画刷创建画笔 178
5.5形状 178
曲线 179
光滑模式 180
保存和恢复图形对象的设置 181
5.6路径 182
填充模式 185
5.7图像 185
加载和绘制图像 186
缩放、裁剪、移动和倾斜图像 187
旋转和翻转 189
重新着色 190
透明 191
动画 192
绘制到图像中 195
屏幕拷贝 197
图标 197
鼠标指针 199
5.8本章小结 202
第6章绘制文本 203
6.1字体 203
创建字体 205
字体字样组 206
系统字体 208
字体特性 209
字体高度 211
6.2字符串 213
格式设置 213
字符串和路径 220
6.3 TextRenderer类 221
使用TextRenderer实现格式设置 223
6.4两种技术的总结 225
外壳一致性 225
国际化 227
设备无关的绘制 228
字体边界光滑功能支持 229
性能 230
与GDI+图形绘制集成 230
文本格式比较 230
集成 232
6.5本章小结 233
第7章高级绘图功能 235
7.1页面单位 235
将像素转换为页面单位 238
7.2转换 239
缩放 240
缩放字体 241
旋转 241
变换 243
Shearing 244
组合转换 245
变换帮助器 246
路径变换 247
7.3区域 248
构造和填充区域 249
区域剪裁 250
区域组合操作 251
7.4优化绘图操作 251
双缓冲技术 253
手工双缓冲技术 254
双缓冲技术的性能考虑 257
其他绘制选项 257
7.5本章小结 258
第8章打印 259
8.1打印文档 259
8.2打印控制器 261
打印预览 262
PrintPreviewDialog控件的控制框图标 264
8.3基本打印事件 265
8.4边距 268
8.5页面设置 271
8.6打印机设置 274
打印范围 276
选择打印机 279
8.7有用的打印技术 280
单词折行和分页 281
基于每个页面的页面设置 285
动态页面计数 287
8.8本章小结 289
第9章组件 291
9.1组件的定义 291
9.2使用组件 292
9.3创建自定义组件 295
直接从System.ComponentModel.Component继承 295
组件资源管理 297
实现IComponent接口 300
向工具箱添加自定义组件 305
自定义功能 306
扩展现存的组件 311
9.4本章小结 312
第10章控件 313
10.1.控件的定义 313
10.2使用控件 314
10.3主题化控件 316
工具条绘制模式 317
10.4自画控件 321
ControlPaint类 324
主题样式控件绘制技术 326
10.5扩展现存的控件 328
10.6自定义控件 329
直接从System.Windows.Forms.Control派生 329
控件绘制 330
自定义实现 332
EventChanged 334
环境属性 336
控件输入功能 339
滚动 345
Windows消息处理 347
10.7用户控件 349
测试用户控件 350
10.8承载COM控件 352
10.9本章小结 353
第11章设计期集成:属性窗口 355
11.1设计期组件 355
11.2宿主、容器和站点 356
11.3调试设计期功能 359
11.4 DesignMode属性 360
11.5特性 361
修改工具箱图标 361
属性窗口集成 362
11.6代码序列化 368
11.7批量初始化 369
ISupportInitializeNotifiication 373
11.8扩展器属性提供者 375
11.9类型转换器 381
自定义类型转换器 383
可扩展对象转换器 388
使用TypeConverters执行自定义类型代码序列化 391
11.10用户界面类型编辑器 394
下拉风格用户界面类型编辑器 396
模式用户界面类型编辑器 399
11.11本章小结 402
第12 章&设计期集成:设计器和智能标签 403
12.1设计器 403
ComponentDesigner 405
ControlDesigner类 409
只在设计期才用到的属性 411
12.2智能标签 414
设计器动作 414
设计器动作列表 415
智能标签属性 416
智能标签方法项 425
乏味的智能标签面板外观 428
自定义智能标签面板的外观 430
给快捷菜单添加智能标签方法项 438
切换智能标签项的标签文本 439
设计器动作列表 442
动态的设计器动作 443
12.3本章小结 447
第13章资源 449
13.1资源基础 449
清单资源 450
13.2强类型资源 454
应用程序资源文件(resx) 454
管理资源 456
资源的持久化保存 459
使用强类型资源 460
资源管理器 463
强类型资源类 465
设计器资源 468
嵌入原生资源 471
13.3应用程序国际化 472
文化信息 473
资源本地化 474
非开发人员的资源本地化 478
资源查找 480
资源解析 482
输入语言 483
阅读方向 485
13.4本章小结 486
第14章应用程序 487
14.1应用程序 487
应用程序生命周期 489
应用程序上下文 490
应用程序事件 492
用户界面线程异常 493
传递命令行参数 496
14.2单实例应用程序 497
单实例检测和管理 498
多窗口SDI应用程序 500
单实例MDI应用程序 508
14.3本章小结 513
第15章 设置 515
15.1应用程序环境 515
编译期设置 515
运行时设置 518
15.2应用程序设置信息、用户设置信息和漫游用户设置信息 524
设置的定义 524
设置文件 525
管理设置 526
编辑设置项 526
应用程序配置文件 530
配置管理器 532
用户配置文件 535
15.3强类型设置 537
15.4使用强类型设置 539
使用Settings类 539
装载和检查设置 540
更新设置 542
保存设置 543
回滚设置 544
移植设置 545
15.5使用设计器来管理设置 549
属性窗口配置 549
属性绑定 551
持久化保存窗体的状态、大小和位置 554
支持工具条的自动布局 555
15.6其他的设置存储方式 557
注册表 557
特殊文件夹 559
15.7本章小结 560
第16章数据绑定基础 561
16.1数据绑定基础知识 561
16.2简单数据绑定和项数据源 566
16.3简单绑定和列表数据源 568
16.4复杂绑定和列表数据源 572
16.5 IBindingList接口 576
16.6 BindingList<T>类 577
双向的列表变更同步 578
双向的项变更同步 580
16.7 BindingSource组件 581
将项类型转变为列表数据源 581
在设计期使用BindingSource 583
16.8设计期数据源 584
数据库 585
Web服务 588
对象 590
配置BindingSource组件 592
数据源持久化保存 595
16.9在设计器中绑定用户界面元素 596
作为可绑定列表数据源的BindingSource组件 596
16.10本章小结 606
第17章应用数据绑定 607
17.1拖放式数据绑定 607
DataGridView绑定用户界面 608
明细绑定用户界面 610
17.2数据绑定用户界面基础 611
项用户界面 611
列表用户界面 625
17.3数据视图 634
17.4实际的数据绑定用户界面 639
主/明细式用户界面 639
列表/项用户界面 644
层次结构用户界面 649
多个数据上下文 651
类型转换器 653
17.5本章小结 656
第18章 多线程用户界面 657
18.1长时间运行的操作 657
进度标识 657
异步操作 660
安全性和多线程 663
简化的多线程 669
报告进度 671
共享数据 680
18.2异步Web服务 683
Web服务组件 687
18.3本章小结 690
第19章CllckOnce 部署 691
19.1实现C1ickOnce部署的步骤 692
发布应用程序 693
启动应用程序 697
19.2 C1ickOnce配置 700
自启动程序 701
应用程序文件 704
发布者细节 705
安装模式 707
版本控制 708
19.3 C1ickOnce安全性 711
代码签名 712
代码访问安全机制 720
19.4管理权限 725
决定所需的权限 725
检查所需的权限 727
19.5部分信任程序集的注意事项 728
收集程序集信息 728
处理按键 729
通过Web服务通信 730
读取和写入文件 733
处理多个部分信任部署区域的情况 734
调试部分信任应用程序 735
19.6处理命令行参数 735
19.7本章小结 738
附录A Windows Forms 20 的的新增功能 739
A.1关于Windows Forms的几句话 739
A.2 Windows Forms 2.0的增强功能 740
A.3 Windows Forms 2.0的改进功能 742
绘制 744
打印 745
组件和控件 745
设计期集成 746
资源 747
应用程序 748
设置 748
数据绑定 750
多线程用户界面 751
ClickOnce部署 752
附录 B从MFC转移到 Windows Forms 753
B.1关于MFC的一席话 753
B.2 MFC与Windows Forms的对比 755
区别 757
战略 762
B.3 MFC与Windows Forms互操作 763
在Windows Forms中承载MFC COM控件 763
在MFC中承载Windows Forms控件 765
B.4 Windows Forms是更好的MFC 769
附录C委托和事件 773
C.1委托 773
接口 774
委托 775
静态监听者 777
C.2事件 777
收获所有结果 778
异步通知:执行并继续 779
异步通知:轮询 780
异步通知:委托 780
C.3匿名委托 781
C.4整个世界的幸福 782
附录D组件和控件概览 785
D.1组件 785
Background Worker 785
BmdmgNavigator 785
BindingSource 785
ColorDialog 786
ErrorProvider 786
FolderBrowserDialog 786
FontDialog 786
HelpProvider 786
ImageList 786
NotifyIcon 787
OpenFileDialog 787
PageSetupDialog 787
PrintDialog 787
PrintDocument 788
PrintPreviewDialog 788
SaveFileDialog 788
SoundPlayer 788
Timer 788
Tool Tip 789
D.2控件 789
B utton 789
CheckBox 789
CheckedListBox 790
ComboBox 790
ContextMenuStrip 791
DataGridView 791
DateTimePicker 791
DomainUpDown 792
DowLayoutPanel 792
GroupBox 792
HScrollBar 792
Label 793
LinkLabel 793
ListBox 794
ListView 795
MaskedTextBox 796
MenuStrip 796
MonthCalendar 796
NumericUpDown 797
Panel 798
PictureBox 798
PrintPreviewControl 798
ProgressBar 798
RadioButton 799
R1cbTextBox 799
SplitContainer 800
StatusStrip 800
TabControl 800
TableLayoutPanel 800
TextBox 800
ToolStrip 801
ToolStripContainer 801
TrackBar 801
TreeView 801
VScroBar 802
WebBrowser 803
附录E拖放功能 805
E.1启用拖放功能 805
拖动源 805
放置目标 806
放置目标和COM 809
运行中的拖放操作 810
E.2添加对多种拖放效果的支持 811
向拖动源添加多种拖放效果 811
向放置目标添加多种拖放效果 812
E.3自定义拖放操作 814
使用自定义鼠标指针 814
控制拖放操作的结束 816
E.4拖放多个数据项 817
拖动多个ListView项 818
资源管理器风格的用户界面的一部分 818
启动一个拖动操作 822
运行中的拖动操作 823
完成拖动操作 826
E.5文件拖放操作 827
附录F 文档管理 829
F.1 FileDocument组件 833
脏位管理 833
文件管理 834
处理File菜单项 836
MDI和FileDocument组件 838
F.2外壳集成 841
与外壳集成 841
文档图标 842
StartDocuments菜单 844
F.3 MruMenuManager组件 845
获得MRU菜单 846
配置MRU菜单的外观 847
添加文件到MRU菜单中 849
打开MRU文件 850
在应用程序会话之间持久保存MRU菜单 851
MruMenuManager和MDI应用程序 852
F.4通过从外壳拖放文件来打开文件 853
参考资料 857
索引 861