第1部分 初识Windows Forms 3
第1章 从Windows Forms开始 3
1.1 用C#编程 3
1.1.1 命名空间和类 5
1.1.2 构造函数和方法 7
1.1.3 C#的类型 8
1.1.4 入口点 10
1.1.5 Application类 10
1.1.6 程序执行 11
1.2 添加控件 12
1.2.1 简写和完全限定名称 13
1.2.2 字段和属性 15
1.2.3 Controls属性 16
1.3 加载文件 17
1.3.1 事件 19
1.3.2 OpenFileDialog类 20
1.3.3 Bitmap图像 22
1.4 改变窗体的尺寸 23
1.4.1 桌面布局属性 26
1.4.2 Anchor属性 27
1.4.3 Dock属性 29
1.5 小结 30
第2章 Visual Studio.NET 32
2.1 Visual Studio.NET编程 33
2.1.1 创建项目 34
2.1.2 执行程序 36
2.1.3 查看源代码 36
2.2 添加控件 40
2.2.1 AssemblyInfo文件 40
2.2.2 窗体重命名 43
2.2.3 Toolbox窗口 43
2.3 加载文件 48
2.3.1 Visual Studio.NET中的事件处理程序 49
2.3.2 异常处理 52
2.4 改变窗体的尺寸 55
2.4.1 指定Anchor属性值 56
2.4.2 指定MinimumSize属性值 57
2.5 小结 58
第2部分 Windows Forms基础 61
第3章 菜单 61
3.1 菜单的特征 62
3.1.1 Menu类 63
3.1.2 Menu类的层次结构 63
3.1.3 派生类 64
3.2.1 添加主菜单 65
3.2 菜单栏 65
3.2.2 添加File菜单 67
3.2.3 添加下拉菜单 69
3.2.4 添加View菜单 72
3.3 Click事件 74
3.3.1 通过Designer窗口添加事件处理程序 75
3.3.2 通过Properties窗口添加事件处理程序 76
3.4 Popup事件和共享处理程序 78
3.4.1 定义共享处理程序 78
3.4.2 处理Popup事件 82
3.5 上下文菜单 85
3.5.1 创建上下文菜单 86
3.5.2 添加菜单项 87
3.6 小结 89
第4章 状态栏 90
4.1 Control类 90
4.2 StatusBar类 92
4.2.1 添加状态栏 93
4.2.2 给状态栏中的文本赋值 95
4.3 状态栏面板 97
4.3.1 向状态栏里添加面板 98
4.3.2 给面板文本赋值 102
4.4 用户绘制的面板 103
4.4.1 DrawItem事件 104
4.4.2 绘制面板 106
4.5 小结 109
第5章 可重用库 111
5.1 C#类和接口 111
5.1.1 接口 112
5.1.2 数据集合类 113
5.2 类库 116
5.2.1 创建类库 117
5.2.2 使用命令行工具 121
5.2.3 创建PhotoAlbum类 122
5.2.4 创建Photograph类 123
5.3 再谈接口 127
5.3.1 支持ICollection接口 128
5.3.2 支持IList接口 129
5.3.3 实现相册的定位操作 131
5.4 健壮性问题 133
5.4.1 处理无效位图 134
5.4.2 重写Object类方法 137
5.4.3 清理系统资源 140
5.4.4 将文件名与相册建立关联 142
5.5 小结 143
第6章 通用文件对话框 144
6.1.1 改变菜单栏 145
6.1 设计问题 145
6.1.2 添加类变量 148
6.2 选取多个文件 148
6.2.1 向相册中添加图像 149
6.2.2 从相册中删除图像 151
6.3 Paint事件 152
6.3.1 绘制当前相片 152
6.3.2 显示当前位置 154
6.4 再谈上下文菜单 155
6.4.2 显示前一幅相片 156
6.4.1 显示下一幅相片 156
6.5 文件和路径 157
6.5.1 创建默认相册目录 157
6.5.2 设置标题栏 160
6.5.3 处理New菜单 161
6.6 保存文件对话框 162
6.6.1 写入相册数据 163
6.6.2 将相册保存为新的文件 166
6.6.3 保存现有相册 168
6.7 打开文件对话框 169
6.7.1 读取相册数据 169
6.7.2 打开相册文件 171
6.8 小结 172
7.1 Form类的层次结构 174
第7章 绘图与滚动 174
7.1.1 ScrollableControl类 175
7.1.2 Form类 176
7.2 图像绘制 177
7.2.1 删除PictureBox控件 177
7.2.2 处理图像菜单 177
7.2.3 实现Stretch To Fit选项 180
7.2.4 实现Scale To Fit选项 183
7.2.5 当调整窗体大小时重新绘制 187
7.3 自动滚动 190
7.3.2 实现自动滚动 191
7.3.1 滚动属性 191
7.4 面板 193
7.4.1 添加面板 194
7.4.2 更新菜单处理程序 195
7.4.3 绘制状态栏面板 196
7.4.4 绘制图像 197
7.5 小结 200
第8章 对话框 201
8.1 消息框 201
8.1.1 MessageBox.Show方法 203
8.1.2 创建OK对话框 204
8.1.3 创建YesNo对话框 205
8.1.4 创建YesNoCancel对话框 207
8.2 Form.Close方法 209
8.2.1 Close和Dispose方法之间的关系 209
8.2.2 拦截Form.Close方法 211
8.3 模态对话框 213
8.3.1 为图片添加标题 214
8.3.2 保存标题值 215
8.3.3 创建CaptionDlg窗体 217
8.3.4 添加属性到CaptionDlg窗体 222
8.3.5 在MainForm类中显示对话框 224
8.4 非模态对话框 226
8.4.1 创建PixelDlg窗体 227
8.4.2 添加类成员到PixelDlg 228
8.4.3 显示非模态的PixelDlg窗体 230
8.4.4 更新PixelDlg窗体 232
8.4.5 随着鼠标的移动更新PixelDlg 233
8.5 小结 235
第9章 基本控件 236
9.1 窗体继承 237
9.1.1 创建基类窗体 237
9.1.2 创建派生窗体 241
9.2 标签和文本框 243
9.2.1 扩充Photograph类 244
9.2.2 创建PhotoEditDlg面板区域 249
9.2.3 创建多行文本框 252
9.2.4 为主窗体添加PhotoEditDlg对话框 256
9.2.5 使用TextBox控件 258
9.3 按钮类 260
9.3.1 扩展PhotoAlbum类 262
9.3.2 使用新的相册设置 265
9.3.3 创建A1bumEditDlg面板区域 268
9.3.4 使用单选按钮 269
9.3.5 使用复选框按钮 273
9.3.6 为主窗体添加AlbumEditDlg对话框 278
9.4 小结 281
第10章 列表控件 282
10.1 列表框 283
10.1.1 创建列表框 283
10.1.2 处理被选取的项 289
10.2 多选列表框 291
10.2.1 启用多选功能 292
10.2.2 处理Move Up和Move Down按钮 294
10.2.3 处理Remove按钮 297
10.3 组合框 299
10.3.1 创建组合框 300
10.3.2 处理被选项 302
10.4 组合框的编辑 304
10.4.1 替换Photographer控件 305
10.4.2 动态更新组合框 307
10.5 自绘制列表 309
10.5.1 添加一个上下文菜单 310
10.5.2 设置选项的高度 311
10.5.3 绘制列表项 313
10.6 小结 316
第11章 更多控件 317
11.1 Tab控件 317
11.1.1 TabControl类 318
11.1.2 创建tab控件 319
11.2 Tab页面 322
11.2.1 动态创建tab页面 323
11.2.2 利用Visual Studio创建tab页面 325
11.3 日期和时间 328
11.3.1 日期和时间 329
11.3.2 自定义DateTimePicker控件 331
11.4 日历 332
11.4.1 添加MonthCalendar控件 333
11.4.2 初始化日历控件 335
11.4.3 处理日历控件中的鼠标单击事件 337
11.5 小结 341
12.1 键盘事件 342
第12章 .NET分类 342
12.1.1 处理KeyPress事件 343
12.1.2 处理其他键盘事件 344
12.2 鼠标事件 346
12.2.1 MouseEventArgs类 346
12.2.2 处理鼠标事件 347
12.3 图像按钮 351
12.3.1 实现Next和Prev按钮 351
12.3.2 为按钮创建位图 357
12.3.3 在按钮上添加位图 360
12.4.1 在窗体中替换图标 363
12.4 图标 363
12.4.2 替代应用程序图标 365
12.5 小结 366
第13章 工具栏和提示 367
13.1 工具栏 367
13.1.1 ToolBar类 368
13.1.2 添加工具栏 369
13.1.3 ToolBarButton类 369
13.2 图像列表 371
13.2.1 ImageList类 372
13.2.2 创建图像列表 372
13.3.1 添加按式按钮 375
13.3 工具栏按钮 375
13.3.2 添加下拉式按钮 379
13.3.3 添加触发器按钮 381
13.4 工具提示 384
13.4.1 ToolTip类 385
13.4.2 创建工具提示 385
13.5 小结 388
第3部分 高级Windows Forms 393
第14章 列表视图 393
14.1 列表视图的特征 393
14.2.1 创建MyAlbumExplorer项目 396
14.2 ListView类 396
14.2.2 创建列表视图 398
14.2.3 组装ListView控件 400
14.3 ListView列 404
14.3.1 创建列 405
14.3.2 组装列 407
14.3.3 列排序 409
14.4 选择和编辑 414
14.4.1 支持项目选择 414
14.4.2 支持标签编辑 418
14.5 项目激活 421
14.5.1 处理项目激活 422
14.5.2 定义新列 423
14.5.3 组装ListView控件 425
14.5.4 第二次列排序 426
14.5.5 更新属性菜单 429
14.5.6 更新标签编辑 430
14.5.7 再现相册 431
14.6 小结 432
第15章 树视图 434
15.1 树视图基础 434
15.2 TreeView类 435
15.2.1 创建树视图 436
15.2.2 利用Splitter类 437
15.2.3 利用TreeNode类 440
15.3 动态树型节点 444
15.3.1 分配索引常量 445
15.3.2 创建相册节点 445
15.3.3 创建相片节点 448
15.4 节点选择 452
15.4.1 支持节点选择 453
15.4.2 重新访问列表视图控件 455
15.5 树视图应用 459
15.5.1 显示相片 459
15.5.2 支持标签编辑 462
15.5.3 更新属性菜单 466
15.6 小结 470
第16章 多文档界面 471
16.1 界面类型 471
16.1.1 单文档界面 471
16.1.2 Explorer界面 472
16.1.3 多文档界面 473
16.1.4 Windows Forms中的支持 474
16.2 MDI窗体 475
16.2.1 创建MDI容器窗体 475
16.2.2 创建MDI子窗体 476
16.2.3 添加新入口点 478
16.3 合并菜单 479
16.3.1 分配合并类型 480
16.3.2 分配合并顺序 481
16.3.3 打开子窗体 484
16.4 MDI子窗体 486
16.4.1 替换工具栏 486
16.4.2 显示像素数据 490
16.4.3 两次打开同一相册 493
16.4.4 更新标题栏 495
16.4.5 重新访问激活事件 497
16.5 MDI子窗口管理 498
16.5.1 MDI窗体布局 499
16.5.2 创建MDI子窗体列表 502
16.6 小结 503
第17章 数据绑定 504
17.1 数据网格 505
17.1.1 创建MyAlbumData项目 507
17.1.2 在数据网格中显示数据 508
17.2 自定义数据网格 511
17.2.1 自定义表格风格 512
17.2.2 自定义列风格 514
17.3 可编辑对象 518
17.3.1 IEditableObject接口 518
17.3.2 支持IEditableObject接口 519
17.3.3 利用可编辑对象 521
17.4 简单数据绑定 523
17.4.1 修改MyAlbumData应用程序 524
17.4.2 进行简单数据绑定 526
17.4.3 更新数据绑定控件 529
17.4.4 显示图像 534
17.4.5 保存对绑定控件的修改 535
17.5 小结 536
第18章 其他.NET主题 538
18.1 打印 538
18.1.1 利用打印类 539
18.1.2 绘制打印页 541
18.2 计时器 545
18.2.1 创建幻灯片窗体 546
18.2.2 实现幻灯片功能 548
18.3 拖放 552
18.3.1 初始化拖放 553
18.3.2 接收拖放 555
18.4 ActiveX控件 557
18.4.1 创建About框 558
18.4.2 包装Web浏览器控件 560
18.4.3 利用Web浏览器控件 561
18.5 小结 565
A.1.1 程序集 567
附录A C#入门 567
A.1 C#程序 567
A.1.2 命名空间 568
A.2 类型 568
A.2.1 类 569
A.2.2 结构 578
A.2.3 接口 579
A.2.4 枚举 580
A.2.5 委托 581
A.3.1 内置类型 582
A.3.2 运算符 582
A.3 语言元素 582
A.3.3 关键字 583
A.4 专有特性 595
A.4.1 异常 595
A.4.2 数组 597
A.4.3 Main 598
A.4.4 装箱 598
A.4.5 文档管理 599
B.2 System.ComponentModel 601
B.3 System.Data 601
B.1 System.Collections 601
附录B .NET命名空间 601
B.4 System.Drawing 602
B.5 System.Globalization 602
B.6 System.IO 602
B.7 System.Net 602
B.8 System.Reflection 603
B.9 System.Resources 603
B.10 System.Security 603
B.11 System.Threading 604
B.12 System.Web 604
B.13 System.Windows.Forms 604
B.14 System.XML 605
附录C 更多信息 606