上册目录 1
简介 1
第一章 控制台本身 1
1.1 C#版本 2
1.2 程序分析 4
1.3 C#名称空间 6
1.4 控制台I/O 8
1.5 C#数据类型 10
1.6 表达式和操作符 14
1.7 条件和循环 17
1.8 对象的跳跃 21
1.9 使用C#的关键特性进行程序设计 25
1.10 静态方法 27
1.11 异常处理 28
1.12 抛出异常 31
1.13 获取和设置属性 32
1.14 构造函数 36
1.15 实例和继承 39
1.16 更宏伟的蓝图 43
1.17 命名约定 45
1.18 几句题外话 46
第二章 欢迎使用Windows Forms 47
2.1 消息框 49
2.2 窗体 55
2.3 显示窗体 57
2.4 它是一个应用程序,我们想要运行它 59
2.5 主题的多种形式 61
2.6 窗体的属性 62
2.7 事件驱动的输入 64
2.8 处理Paint事件 66
2.9 显示文本 69
2.9.1 字体 70
2.9.2 画刷 71
2.9.3 坐标点 72
2.10 Paint事件很特殊! 74
2.11 多个窗体,多个处理程序 75
2.12 继承窗体 77
2.13 OnPaint方法 79
2.14 Main属于这里吗? 81
2.15 事件和On方法 82
第三章 基本结构 87
3.1 类和结构 87
3.2 二维坐标点 89
3.3 Point数组 91
3.4 Size结构 92
3.5 浮点版本 93
3.6 矩形是一个Point和一个Size 96
3.7 Rectangle属性和方法 97
3.8 大小合适的窗体 100
3.9 窗体和客户区 101
3.10 坐标变换 105
3.11 颜色结构 106
3.12 141种颜色名称 107
3.13 画笔和画刷 108
3.14 系统颜色 110
3.15 已知的颜色 113
3.16 使用什么? 114
3.17 感受重画 115
3.18 使Hello World居中 117
3.19 测量字符串 121
3.20 矩形中的文本 123
第四章 文本输出中的练习 127
4.1 系统信息 127
4.2 为文本之间添加间距 128
4.3 属性值 129
4.4 格式化为列 131
4.5 每样东西都是一个对象 133
4.6 列出系统信息 137
4.7 Windows窗体和滚动条 140
4.8 滚动面板控件 141
4.9 ScrollableControl的继承关系 145
4.10 没有控件的滚动 146
4.11 实际数值 148
4.12 保持最新 149
4.13 不要成为一头猪 152
4.14 展望未来 154
第五章 直线、曲线和区域填充 159
5.1 如何获得一个图形对象 160
5.2 画笔简介 161
5.3 直线 162
5.4 打印 164
5.5 属性和状态 170
5.6 图形保真 171
5.7 多重连接的直线 174
5.8 曲线和参数方程 178
5.9 普遍存在的矩形 181
5.10 一般化的多边形 183
5.11 更简单的椭圆 184
5.12 弧线和饼图 185
5.13 填充矩形、椭圆和饼图 192
5.14 偏离1个像素 194
5.15 多边形和填充模式 195
第六章 接近键盘 199
6.1 忽略键盘 199
6.2 谁获得了焦点? 200
6.3 键和字符 201
6.4 键的按下和弹起 202
6.5 Keys枚举 204
6.6 测试修饰键 213
6.7 实际检验 214
6.8 SysInfo的键盘接口 215
6.9 字符的击键 217
6.10 控制字符 217
6.11 查看键码 218
6.12 调用Win32 API 223
6.13 处理来自外语键盘的输入 225
6.14 输入焦点 228
6.15 丢失的插入符号 229
6.16 回显键字符 234
6.17 从右到左的问题 237
第七章 页面和变换 241
7.1 文本的设备无关性 241
7.2 实际数值是多少? 242
7.3 每英寸的点数 245
7.4 打印机的情况怎样? 246
7.5 手工转换 247
7.6 页单位和页缩放 249
7.7 画笔的宽度 254
7.8 页面变换 257
7.9 保存图形状态 258
7.10 可度量大小 259
7.11 任意坐标 263
7.12 哪些事情不能做 266
7.13 世界坐标变换 267
7.14 总结 272
7.15 线性变换 272
7.16 矩阵简介 275
7.17 Matrix类 277
7.18 切变之类的变形 279
7.19 组合变换 282
第八章 鼠标的历史 285
8.1 鼠标的不利一面 286
8.2 忽略鼠标 287
8.3 一些核心定义 287
8.4 关于鼠标的信息 288
8.5 鼠标滚轮 289
8.6 4种基本的鼠标事件 290
8.7 转动滚轮 292
8.8 鼠标移动 296
8.9 跟踪和捕获鼠标 298
8.10 跟踪的经历 301
8.11 使用接口将代码一般化 308
8.12 单击和双击 311
8.13 与鼠标有关的属性 312
8.14 进入、离开和停留 313
8.15 鼠标光标 315
8.16 点击测试 323
8.17 添加键盘接口 325
8.18 使子类工作 327
8.19 点击测试文本 331
8.20 使用鼠标随意画线 333
第九章 文本和字体 339
9.1 Windows中的字体 339
9.2 字形 340
9.3 字体高度和行距 343
9.4 默认字体 344
9.5 字体的变化形式 345
9.6 使用名称创建字体 348
9.7 磅值的其他名字 353
9.8 度量单位之间的冲突 357
9.9 Font的属性和方法 359
9.10 FontFamily的新字体 364
9.11 理解设计度量 367
9.12 字体系列数组 371
9.13 字体集合 376
9.14 DrawString的变化形式 378
9.15 消除文本的锯齿 379
9.16 测量字符串 381
9.17 StringFormat选项 383
9.18 网格匹配和文本匹配 385
9.19 水平和垂直对齐 387
9.20 热键显示 392
9.21 裁剪和删除首尾空白 394
9.22 使用制表位 401
第十章 定时器和时间 407
10.1 Timer类 408
10.2 DateTime结构 411
10.3 本地时间和统一时间 413
10.4 滴答计数 416
10.5 世界各地的日历 419
10.6 可读的表达方式 421
10.7 一个简单的文化所特有的时钟 426
10.8 流行的外观 431
10.9 模拟时钟 435
10.10 拼图游戏 441
第十一章 图像和位图 449
11.1 位图支持概述 450
11.2 位图文件格式 451
11.3 加载和绘制 456
11.4 图像信息 461
11.5 绘制图像 465
11.6 匹配矩形 467
11.7 旋转和剪切 472
11.8 显示部分图像 474
11.9 在图像上绘制 478
11.10 关于Image类的更多内容 483
11.11 Bitmap类 486
11.12 使用位图的Hello World 488
11.13 阴影位图 490
11.14 二进制资源 492
11.15 动画 498
11.16 图像列表 504
11.17 图片框 507
12.1 按钮和单击 511
第十二章 按钮、标签和滚动条 511
12.2 键盘和鼠标 515
12.3 控件问题 517
12.4 深入讨论按钮 517
12.5 外观和对齐方式 521
12.6 带有位图的按钮 524
12.7 多个事件处理程序还是一个事件处理程序? 527
12.8 绘制自己的按钮 527
12.9 设置锚点 532
12.10 永久停靠 535
12.11 窗体的子对象 538
12.12 z层叠顺序 541
12.13 复选框 542
12.14 三状态复选框 545
12.15 标签控件 547
12.16 制表位和Tab键控制顺序 550
12.17 标识控件 550
12.18 自动缩放选项 553
12.18.1 Windows Forms Designer如何使用自动缩放? 554
12.18.2 富有创造性的AutoScaleBaseSize设置 555
12.18.3 深入研究自动缩放 556
12.19 十六进制计算器 558
12.20 单选按钮和组框 563
12.21 滚动条 566
12.22 跟踪栏的各种形式 575
下册目录 581
第十三章 贝塞尔曲线和其他样条曲线 581
13.1 实际使用贝塞尔曲线 582
13.2 更时髦的时钟 586
13.3 共线的贝塞尔曲线 589
13.4 使用贝塞尔曲线绘制圆和弧 591
13.5 贝塞尔艺术作品 594
13.6 数学推导 595
13.7 标准样条曲线 599
13.8 标准样条曲线的公式推导 606
14.1 菜单和菜单项 611
第十四章 菜单 611
14.2 菜单快捷键 615
14.3 第一个菜单 617
14.4 非常规菜单 620
14.5 MenuItem的属性和事件 622
14.6 选取菜单项 624
14.7 使用快捷菜单 628
14.8 菜单项集合 631
14.9 标准菜单(建议) 636
14.10 所有者绘制选项 642
15.1 一个问题及其解决方案 651
第十五章 路径、区域和裁剪 651
15.2 更加正式地介绍路径 656
15.3 创建路径 659
15.4 绘制路径 662
15.5 路径变换 666
15.6 其他路径修改 669
15.7 裁剪路径 676
15.8 裁剪位图 681
15.9 区域和裁剪 685
第十六章 对话框 687
16.1 第一个有模式对话框 688
16.2 有模式对话框的中止 692
16.3 接受和取消 694
16.4 屏幕位置 696
16.5 About对话框 699
16.6 定义对话框中的属性 702
16.7 实现Apply按钮 707
16.8 无模式对话框 710
16.9 通用对话框 714
16.10 选择字体和颜色 715
16.11 使用Windows注册表 722
16.12 打开文件的对话框 727
16.13 保存文件的对话框 735
第十七章 画刷和画笔 739
17.2 阴影画刷 740
17.1 填充实心颜色 740
17.3 绘制原点 750
17.4 纹理画刷 753
17.5 线性渐变画刷 758
17.6 路径渐变画刷 766
17.7 排列画刷 771
17.8 画笔也可以成为画刷 779
17.9 虚线类型 782
17.10 箭头形状 785
第十八章 文本框、列表框和旋转框 793
18.1 单行文本框 793
18.2 多行文本框 798
18.3 模仿Notepad 800
18.4 带有文件I/O的Notepad Clone 806
18.5 Notepad Clone程序的进一步完善 815
18.6 特殊用途的文本框 830
18.7 多信息文本框 831
18.8 工具提示 832
18.9 列表框 839
18.10 列表框+文本框=组合框 846
18.11 上下控件 851
第十九章 字体 863
19.1 入门 863
19.2 使用画刷绘制的文本 865
19.3 字体变换 872
19.4 文本和路径 883
19.5 非线性变换 897
第二十章 工具栏和状态栏 903
20.1 基本状态栏 904
20.2 状态栏和自动滚动 906
20.3 状态栏窗格 909
20.4 StatusBarPanel属性 911
20.5 菜单帮助 915
20.6 基本工具栏 922
20.7 工具栏的变化形式 926
20.8 工具栏事件 929
20.9 工具栏样式 935
第二十一章 打印 945
21.1 打印机及其设置 945
21.2 页面设置 953
21.3 定义文档 956
21.4 处理PrintDocument的事件 958
21.5 页面大小 965
21.6 打印控制器 968
21.7 使用标准的打印对话框 972
21.8 设置页面 977
21.9 打印预览 981
22.1 拆分器 989
第二十二章 树形视图和列表视图 989
22.2 树形视图与树节点 1004
22.3 树形视图中的图像 1008
22.4 树形视图的事件 1009
22.5 节点定位 1011
22.6 目录树 1013
22.7 显示图像 1019
22.8 列表视图基础 1027
22.9 列表视图事件 1033
第二十三章 元文件 1041
23.1 加载和显示现有的元文件 1042
23.2 元文件的大小和显示 1044
23.3 将元文件转换为位图 1052
23.4 创建新的元文件 1054
23.5 元文件外框 1061
23.6 元文件和页面变换 1064
23.7 元文件的类型 1067
23.8 列举元文件 1070
第二十四章 剪切、拖动和放置 1077
24.1 项目和格式 1078
24.2 小巧(但强大)的Clipboard类 1078
24.3 从剪贴板获得对象 1080
24.4 剪贴板数据格式 1089
24.5 剪贴板查看器 1099
24.6 设置多种剪贴板格式 1108
24.7 拖动和放置 1112
附录A 文件和流 1121
A.1 最基本的文件I/O类 1121
A.2 FileStream的属性和方法 1123
A.3 FileStream的问题 1128
A.4 其他流类型 1128
A.5 读写文本 1129
A.6 二进制文件I/O 1137
A.7 Environment类 1141
A.8 文件名和路径名解析 1143
A.9 并列的类 1145
A.10 使用目录 1146
A.11 文件操作和信息 1152
附录B 数学类 1157
B.1 数值类型 1157
B.2 检查整数溢出 1158
B.3 小数类型 1160
B.4 浮点数的无穷大和无穷小 1163
B.5 Math类 1165
B.6 浮点数的余数 1167
B.7 幂和对数 1168
B.8 三角函数 1169
附录C 字符串理论 1173
C.1 char类型 1175
C.2 String的构造函数和属性 1177
C.3 复制字符串 1180
C.4 转换字符串 1181
C.5 连接字符串 1181
C.6 比较字符串 1183
C.7 搜索字符串 1187
C.8 去首尾空格和填充字符串 1189
C.9 字符串操作 1190
C.10 格式化字符串 1191
C.11 数组排序和搜索 1191
C.12 StringBuilder类 1194