首页>参考读物>计算机科学与技术>软件与程序设计

Windows Forms编程实战
作者 : Erik Brown
译者 : 徐波
出版日期 : 2007-10-11
ISBN : 7-111-22114-2
定价 : 75.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 599
开本 : 16开
原书名 : Windows Forms in Action
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

“超值的章节,超值的书!”
                          ——联合国高级架构师Berndt Hamboeck

  “对开发人员来说是美味可口的大餐,而对Windows Forms来讲是另类的革新。”
                          ——微软技术和Catalyst IT服务部主任Dave Corun

  本书是一本非常出色的Windows Forms专著,它在这个领域所发掘的深度远远超过普通的.NET编程书籍。
  本书详细描述Windows Forms命名空间中的大多数类,重点讲解System.Windows.Forms命名空间,对Windows Forms进行了系统的介绍。
  本书以一个相册应用程序为主线,不断融入新的Windows Forms特性,使它从一个简单的只能显示单张照片的应用程序逐步发展成为一个具有丰富特性的产品级相册应用程序,并能够实现多项高级功能。
  无论对开发桌面应用程序的Windows程序员,还是正在学习Windows Forms知识的开发人员,或者是毫无Windows开发经验的初学者,相信本书都是最佳的选择。

主要内容
  ■ 自绘制列表框
  ■ 列表和树型视图
  ■ 多文档界面
  ■ 数据网格和数据绑定
  ■ 拖放
  ■ 实现可重用程序库、自动填充的组合框、键盘和鼠标处理、打印和打印预览以及嵌入式Web浏览器

  书上的原网址已变更,请登录 http://download.csdn.net/source/268185 注册下载源代码。

图书特色

图书前言

当我还在学校的时候,当我毕业后在不同的创业公司打拼的时候,我深信UNIX将统治这个世界,从来不曾想到自己会站在计算机行业的“公敌”Microsoft一边。我饶有趣味地发现自己出版了不止一本书,为Microsoft的技术传经布道。我想读者应该知道自己该走什么路,而我现在已经完全投身于Windows的开发之中。幸运的是,我对自己的转变深感快乐,而我原本以为自己是误入歧途。
  至于出版这本书的想法,要想实现起来却并不容易。创作所带来的激情很快就会消退,你会意识到自己不仅想写一本书,而且想写一本好书。这会改变你的思维和方法,因为你必须付出极大的精力和时间使它变“好”。然后有一天,你又会发现一个事实,你不仅想写一本好书,而且想写一本人们喜欢并且愿意购买的书。
  这正是我写作本书第1版和第2版的经历。第1版获得了相当的成功,因此为.NET 2.0推出第2版不仅顺理成章,而且看上去似乎很容易。遗憾的是,Microsoft那帮聪明的伙计们在Windows Forms中添加并修改了相当多的内容,使我感觉就像完全重写一本新书一样。
  读者可能会以为写作第2版要比第1版更为容易,其实不然。虽然我知道如何对正文进行组织,并且知道基本的格式是一样的。但是,作为一名“经验更丰富的作者”,我必须对本书以及书中的示例程序进行更合理的设计。每章的内容更为简捷,我试图利用自己在Unisys公司所积累的.NET企业级应用程序的开发经验,实现更好的程序设计。我在主要的MyPhotos应用程序之外添加了一些分支,覆盖了一些其他材料,为一些有趣的话题提供了示例代码。
  另外一个原因是当我编写本书的第1版时还是一名顾问,因此我可以脱开几个星期,全身心地投入到写作之中。现在,作为一名全职的项目经理,找出充裕的时间来完成第2版的写作并不是一件容易的事情。我的家庭和朋友对这两个版本的写作提供了相当大的支持,对此我深表谢意。
  最后,我发现自己对本书的第2版非常满意。有些关键的概念,例如加密、自定义控件、进度条等,以相当自然的方式融入到本书之中。我喜欢第2版的章节规划,并且从第1版的18章扩展到第2版的23章。我对索引部分也是相当满意,相信读者会发现它比第1版的索引更为有用。第1版和第2版的另一处较大修改是书名。这个版本被命名为“Windows Forms in Action”,以区别于其他书籍,并且与Manning新的“In Action”系列保持一致。书中大量使用的“活动-结果”表格正是这个新书名的由来。新的书名、新的封面、新的章节,就像推出一本新书一样。希望读者能够喜欢!
  致谢
  我不时地感到惊奇,为什么生活中那些纷乱的头绪能够产生真实的结果,摆在读者面前的这本书就是一个例子。虽然本书签署的是我的名字,但是还有许多已知或未知的人们为这本书作出了巨大的贡献。我特别感谢Manning出版社的排版人员Sydney Brown,她为本书的第1版的外观质量提供了非常大的帮助。Sydney现在已经没有和我们在一起了,但我们会一直怀念她,怀念她对本书以及其他Manning出版物所作出的贡献。
  感谢我的家庭,感谢妻子Bridgett的耐心和爱。感谢Katie和Sydney给我的生活所带来的笑声和欢乐。感谢父母David和Janet,感谢我的老师们,以及在生活中给我提供支持的其他人。特别感谢Steve Cox和David Cobb,很久以前,他们带领我走入了计算机编程的殿堂。感谢我的许多朋友,感谢他们所提供的只能朋友才能给予的支持和鼓励,尤其是Jean Siegel、Tommy McCracken、Tony Mason和Reggie Blue。
  来自世界各地的许多审稿人奉献了他们的时间和精力阅读本书各章的早期版本,我向他们表示特别的感谢。如果没有他们的帮助和努力,本书肯定会逊色不少。尤其要感谢Dave Corun,他在本书最终出版之前对所有的正文进行了精心的技术审查。另外,非常感谢Erick Ellis以及Microsoft Windows Forms小组的其他成员,感谢他们在.NET 2.0框架中所作的努力,还感谢他们为本书所提供的许多建设性的意见。其他审稿人也向本书提供了具有深远意义的评价或想法,他们是Andrew Deren、Berndt Hamboeck、Jack Herrington、Shane Jervis、Joe Litton、Robert Marshall、Robert McGovern、Mark Monster、Alan Newson、Vipul Patel、Heath Stewart、Gary Udstrand和Andrew Varner。
  我还想感谢本书第1版的审稿人,这是2001年的事情,感谢Steve Binney、Mark Boulter、Drew Marsh、Josh Mitts和Kunle Odutola。他们的建议对本书的第1版起到了关键的作用,并为第2版的重点内容和布局奠定了基础。
  最后,我想感谢Manning出版社中那些我未曾谋面,但确实在本书的出版过程中提供了关键支持的人们。尤其是Susan Capparelle,他从我最初的建议中看到了一些有价值的东西。Marjan Bace为本书的第1版提供了自己的想法和思路,并在对第2版也提供了一些建议。Karen Tegtmeyer负责协调所有的审稿人以及他们的反馈意见。Leslie Haimes为本书设计了非常酷的封面。Mary Piergies审查了整个项目,并回答了我的许多问题。Ann Navarro、Susannah Pfalzer和Lianna Wlasiuk帮助我完成本书的结构设计。Liz Welch对最终的文档进行了精心的复制和编辑。Barbara Mirecki和Katie Tennant对最后的手稿进行了细致的校对。Dottie Marsico为附录C创建了页号,并完成了本书最终的排版。  Helen Trimes在本书的市场销售方面作出了贡献。最后,感谢Lee   Fitzpatrick继续为我签署版税支票。

封底文字

“超值的章节,超值的书!” ——联合国高级架构师Berndt Hamboeck “对开发人员来说是美味可口的大餐,而对Windows Forms来讲是另类的革新。” ——微软技术和Catalyst IT服务部主任Dave Corun 本书是一本非常出色的Windows Forms专著,它在这个领域所发掘的深度远远超过普通的.NET编程书籍。 本书详细描述Windows Forms命名空间中的大多数类,重点讲解System.Windows.Forms命名空间,对Windows Forms进行了系统的介绍。 本书以一个相册应用程序为主线,不断融入新的Windows Forms特性,使它从一个简单的只能显示单张照片的应用程序逐步发展成为一个具有丰富特性的产品级相册应用程序,并能够实现多项高级功能。 无论对开发桌面应用程序的Windows程序员,还是正在学习Windows Forms知识的开发人员,或者是毫无Windows开发经验的初学者,相信本书都是最佳的选择。 主要内容 ■ 自绘制列表框 ■ 列表和树型视图 ■ 多文档界面 ■ 数据网格和数据绑定 ■ 拖放 ■ 实现可重用程序库、自动填充的组合框、键盘和鼠标处理、打印和打印预览以及嵌入式Web浏览器

作者简介

Erik Brown:Erik Brown: 是数学家出身,具有17年的软件开发、软件架构和软件管理的丰富经验,同时也是成功创办过3家公司的企业家。他是基于Windows的应用程序和数据驱动接口方面的咨询专家。目前他在Unisys公司担任项目经理。

译者简介

徐波:徐波: 浙江宁波人,熟悉C、C++和Java语言,尤以C和C++见长。主要译作有《C专家编程》、《C和指针》、《OpenGL编程指南 (原书第5版)》等。 徐波的blog是 http://blog.csdn.net/ThinkAcute。

译者序

本书是美国.NET技术专家Erik Brown的力作。本书以生动翔实的语言,描述了在Visual Studio C# 2005开发环境中进行Windows Forms编程的各方面细节。
  本书紧紧围绕Windows Forms这个主题,对各种Windows Forms特性进行了极为详细的介绍,而对其他细节涉墨甚少。本书并没有介绍面向对象编程,也没有花太多的篇幅介绍C#编程语言的细节(只是在附录A简单地描述了C#语言的结构)。关于Visual Studio C# 2005开发环境的许多使用技巧,则分散在具体的应用场合进行说明,而不是开辟专门的章节予以介绍。根据译者的体验,前者的效果要好得多。
  如果读者想寻找一本教材,认真学习Windows Forms编程的细节,那么本书是一个非常理想的选择。本书以一个相册应用程序为主线,在学习过程中不断融入新的Windows Forms特性,使它从一个简单的只能显示单张照片的应用程序发展成为一个具有丰富特性的产品级相册应用程序,能够实现高级的浏览和打印功能。
  本书的另一个特性是它所采用的表格代码,把实现每个特性所需要的代码以表格的形式分步骤显示,虽然对译者而言增加了很大的工作量,但对于读者而言,这样的代码形式看起来非常清楚,能够立即明白完成某一步骤需要哪些代码。
  如果说这本书有什么缺陷的话,就是它的整体性非常强,需要读者耐心地从头到尾读完这本书,才能收到良好的效果。如果读者只是想了解某个Windows Forms特性(例如TreeView控件)的内容,可能因为本书内容的连贯性太强而无从下手。从这个意义上说,这本书更适合当教材,而不是作为参考手册。
  不管怎样,这是一本非常出色的Windows Forms专著,它在这个领域所发掘的深度远远超过普通的.NET编程书籍。如果读者能够耐心地读完本书,一定可以取得巨大的收获。
  参加本书翻译工作的人员有徐波、陈永军、李福军、毛玉山、杨洁、张瑜、应巧敏、汤晓萍、胡柯铭、谢凯、郑培红、顾沂、袁静义、陈岚、张青等。

图书目录

译者序
前 言
引 言
第1部分  欢迎进入Windows Forms世界
第1章  初识Windows Forms 2
1.1  用C#编程 2
1.1.1  命名空间和类 4
1.1.2  构造函数和方法 5
1.1.3  C#的类型 5
1.1.4  Main方法 7
1.1.5 Application类 8
1.1.6  程序的执行 9
1.2  Windows Forms控件 9
1.2.1  using指令 11
1.2.2  控件类 12
1.2.3  Controls属性 13
1.3  加载文件 13
1.3.1  事件 15
1.3.2  OpenFileDialog类 16
1.3.3  Bitmap图像 18
1.4  更改窗体的大小 19
1.4.1  Anchor属性 20
1.4.2  Dock属性 21
1.5  回顾 23
第2章  欢迎使用Visual Studio 24
2.1  使用Visual Studio编程 24
2.1.1  创建项目 25
2.1.2  执行程序 27
2.1.3  观察源代码 27
2.2  Windows Forms控件 31
2.2.1  AssemblyInfo文件 31
2.2.2  对窗体进行重命名 33
2.2.3  工具箱窗口 34
2.3  加载文件 38
2.3.1  在Visual Studio中处理事件 38
2.3.2  处理异常 41
2.4  改变窗体的大小 43
2.4.1  设置Anchor属性 43
2.4.2  设置Dock属性 44
2.5  回顾 44
第2部分  Windows Forms基础知识
第3章  菜单 49
3.1  控件和容器 49
3.1.1  控件类 49
3.1.2  容器类 50
3.2  菜单的本质 51
3.2.1  菜单术语 52
3.2.2  .NET中的菜单 52
3.3  菜单栏 53
3.3.1  添加菜单条 54
3.3.2  添加菜单项 56
3.3.3  添加下拉菜单项 58
3.4  菜单处理 62
3.4.1  通过设计窗口添加事件处理方法 62
3.4.2  通过属性窗口添加事件处理方法 63
3.5  回顾 65
第4章  上下文菜单和状态条 66
4.1  上下文菜单条 66
4.1.1  创建上下文菜单 67
4.1.2  向上下文菜单添加菜单项 68
4.1.3  共享上下文菜单 69
4.2  下拉事件和事件参数 71
4.2.1  处理子菜单项点击 72
4.2.2  在显示子菜单之前对它进行更改 75
4.3  状态条 77
4.3.1  创建状态条 77
4.3.2  添加状态条标签 78
4.4  回顾 82
第5章  可复用类库 84
5.1  类库 84
5.1.1  创建类库 85
5.1.2  使用命令行工具 87
5.1.3  创建Photograph类 88
5.1.4  定义类的属性 91
5.2  object类 93
5.2.1  比较object和Object 93
5.2.2  重写object类的方法 94
5.3  接口 96
5.3.1  接口和集合 96
5.3.2  理解集合类 97
5.4  泛型 101
5.4.1  泛型类 101
5.4.2  理解泛型集合 102
5.4.3  资源的销毁 105
5.5  回顾 107
第6章  文件和常用对话框 109
6.1  标准菜单 109
6.1.1  更改菜单栏 109
6.1.2  管理相册 112
6.2  常用文件对话框 117
6.2.1  创建新相册 117
6.2.2  打开相册 119
6.2.3  保存相册 121
6.2.4  打印和退出 123
6.3  流和写入器 124
6.3.1  Stream类 124
6.3.2  把相册写入磁盘 126
6.3.3  从磁盘中读取相册 128
6.4  相册管理 130
6.4.1  添加和删除图像 130
6.4.2  浏览相册 131
6.4.3  显示相册的状态 133
6.5  回顾 133
第7章  对话框 135
7.1  消息框 135
7.1.1  创建OK消息框 136
7.1.2  创建YesNo消息框 137
7.1.3  创建YesNoCancel消息框 139
7.2  Form.Close方法 141
7.2.1  比较Close和Dispose 141
7.2.2  拦截Form.Close方法 143
7.3  窗体和面板 145
7.3.1  Form类 145
7.3.2  创建对话框 146
7.4  无模式对话框 147
7.4.1  创建无模式对话框 148
7.4.2  向窗体添加面板和标签 149
7.4.3  更新PixelDialog控件 152
7.4.4  显示无模式对话框 155
7.4.5  更新PixelDialog窗体 157
7.4.6  追踪鼠标移动 158
7.5  回顾 159
第8章  文本框 160
8.1  窗体的继承 160
8.1.1  创建基类窗体 161
8.1.2  创建派生类窗体 163
8.2  标准文本框 165
8.2.1  添加文本框 165
8.2.2  添加多行文本框 169
8.2.3  连接对话框 173
8.3  掩码文本框 174
8.3.1  处理KeyPress事件 174
8.3.2  设置文本的掩码 176
8.4  回顾 180
第9章  按钮 181
9.1  下压按钮 181
9.1.1  Button类 182
9.1.2  扩展PhotoAlbum类 183
9.1.3  存储相册数据 184
9.2  单选按钮 186
9.2.1  RadioButton类 186
9.2.2  创建相册对话框 187
9.3  复选框按钮 189
9.3.1  CheckBox类 189
9.3.2  使用复选框按钮 190
9.3.3  完成AlbumEditDialog窗体 191
9.3.4  再次连接对话框 193
9.4  工具提示和错误提示 194
9.4.1  ToolTip类 195
9.4.2  显示工具提示 195
9.4.3  创建扩展器提供程序 198
9.4.4  ErrorProvider类 200
9.5  回顾 202
第10章  处理用户输入和加密 203
10.1  键盘事件 203
10.1.1  3种事件 203
10.1.2  处理KeyPress事件 203
10.1.3  处理KeyDown和KeyUp事件 205
10.1.4  预处理命令键 206
10.2  鼠标事件 207
10.2.1  MouseEventArgs类 208
10.2.2  使用鼠标事件实现
FlybyTextProvider 209
10.2.3  使用FlybyTextProvider类 212
10.3  加密 214
10.3.1  Cryptography命名空间 214
10.3.2  对数据进行加密 215
10.3.3  写入加密数据 217
10.3.4  读取加密数据 218
10.3.5  存储经过加密的相册 219
10.4  链接标签 222
10.4.1  LinkLabel类 222
10.4.2  保存加密相册 223
10.4.3  打开经过加密的相册 224
10.5  回顾 227
第11章  列表框 229
11.1  列表控件 229
11.1.1  ListControl类 229
11.1.2  创建一个新的解决方案 231
11.1.3  重构应用程序的代码 231
11.2  简单的列表框 236
11.2.1  ListBox类 237
11.2.2  显示数据源 238
11.2.3  选择列表元素 241
11.3  多选列表框 243
11.3.1  启用多选功能 243
11.3.2  改变列表项的顺序 246
11.3.3  删除列表元素 249
11.4  回顾 250
第12章  组合框 251
12.1  标准组合框 251
12.1.1  ComboBox类 251
12.1.2  创建组合框 252
12.1.3  选择列表框中的列表项 254
12.1.4  修改数据源 255
12.2  可编辑的组合框 257
12.2.1  再次创建组合框 257
12.2.2  动态更新组合框 260
12.3  自动完成 261
12.3.1  理解自动完成 261
12.3.2  在组合框中使用自动完成功能 264
12.4  列表项的格式化 264
12.4.1  格式化接口 264
12.4.2  实现IFormattable接口 265
12.4.3  在列表控件中使用格式化 268
12.4.4  实现自定义格式化 270
12.5  回顾 272
第13章  选项卡控件和选项卡页面 273
13.1  选项卡控件的基础知识 273
13.1.1  TabControl类 273
13.1.2  创建选项卡控件 274
13.2  选项卡页面的基础知识 277
13.2.1  TabPage类 277
13.2.2  创建选项卡页面 277
13.2.3  在选项卡页面中封装现有的控件 280
13.3  自绘制的选项卡 282
13.3.1  DrawItem事件 282
13.3.2  绘制页面的选项卡 284
13.3.3  使用自绘制的选项卡控件 286
13.4  自绘制的列表框 287
13.4.1  自定义的列表项 287
13.4.2  设置列表项的大小 288
13.4.3  绘制列表项 289
13.5  回顾 291
第14章  日期、日历和进度条 292
14.1  显示日期和时间 292
14.1.1  DateTimePicker类 292
14.1.2  创建DateTimePicker控件 294
14.2  日期和时间的格式 296
14.2.1  对日期和时间值进行格式化 296
14.2.2  自定义DateTimePicker控件 299
14.3  日历 300
14.3.1  MonthCalendar类 300
14.3.2  UserControl类 301
14.3.3  创建日历控件 302
14.3.4  初始化日历 303
14.3.5  在日历控件中处理鼠标点击 305
14.4  进度条 308
14.4.1  创建image用户控件 308
14.4.2  ProgressBar类 311
14.4.3  执行后台任务 313
14.5  回顾 316
第15章  装饰和美化 317
15.1  图像和光标 317
15.1.1  Bitmap类 317
15.1.2  图标 320
15.1.3  光标 324
15.2  嵌入式资源和声音 325
15.2.1  嵌入资源 325
15.2.2  使用项目资源文件 327
15.2.3  播放声音 329
15.3  滑动条 331
15.3.1  TrackBar类 331
15.3.2  使用滑动条 332
15.4  计时器 335
15.4.1  Timer类 336
15.4.2  使用计时器 336
15.5  回顾 338
第16章  工具条 339
16.1  工具条的基础知识 339
16.1.1  ToolStrip类 340
16.1.2  创建工具条 341
16.2  工具条项的基础知识 342
16.2.1  ToolStripItem类 342
16.2.2  添加标准工具条项 342
16.2.3  工具条项的对齐、溢出和其他特性 345
16.3  图像列表 346
16.3.1  ImageList类 346
16.3.2  创建图像列表 346
16.3.3  添加自定义工具条按钮 348
16.4  工具条容器 349
16.4.1  ToolStripContainer类 350
16.4.2  在容器中嵌入一个工具条 351
16.5  特殊的按钮项 353
16.5.1  切换按钮 353
16.5.2  下拉按钮 356
16.5.3  分隔按钮 357
16.6  回顾 360
第3部分  高级Windows Forms
第17章  自定义控件 364
17.1  扩展现有的控件 364
17.1.1  设计可滚动图片框 365
17.1.2  创建可滚动图片框 366
17.1.3  实现可滚动图片框 368
17.2  基于Control类的自定义控件 371
17.2.1  创建一个基于Control的类 371
17.2.2  自定义控件的公共特性 373
17.3  ScrollablePictureBox类 375
17.3.1  绘制控件 375
17.3.2  改变控件的大小 377
17.3.3  处理属性的变化 378
17.4  用户控件 380
17.5  Visual Studio中的自定义控件 381
17.5.1  对类的行为进行自定义 381
17.5.2  对类成员的行为进行自定义 383
17.5.3  对设计时的行为进行自定义 385
17.6  回顾 387
第18章  资源管理器界面和树形视图 389
18.1  界面风格 389
18.1.1  单文档界面 389
18.1.2  多文档界面窗口 390
18.1.3  资源管理器界面 391
18.2  .NET的资源管理器界面 391
18.2.1  SplitContainer类 392
18.2.2  TreeView类 394
18.2.3  创建资源管理器界面 395
18.3  树节点 397
18.3.1  TreeNode类 397
18.3.2  创建树节点 398
18.4  自定义树形视图 401
18.4.1  创建自定义树形视图 402
18.4.2  创建自定义的树节点 402
18.4.3  使用接口的自定义节点 404
18.4.4  展开和收缩树节点 409
18.4.5  选择和编辑树节点 411
18.4.6  集成自定义树形控件 415
18.5  回顾 417
第19章  列表视图 419
19.1  列表视图的基础知识 419
19.1.1  ListView类 419
19.1.2  创建列表视图 421
19.1.3  生成列表视图 423
19.2  列表视图的列 426
19.2.1  定义列标题 427
19.2.2  生成列表视图的列 429
19.2.3  对列表视图的列进行排序 432
19.3  列表视图的特性 436
19.3.1  选择列表项 437
19.3.2  编辑列表项的标签 439
19.3.3  激活列表项 443
19.4  虚拟项 445
19.5  回顾 447
第20章  多文档界面 448
20.1  MDI窗体 448
20.1.1  创建MDI容器 449
20.1.2  创建MDI子窗体 450
20.1.3  更新应用程序的入口 451
20.2  合并菜单 453
20.2.1  设置合并操作 454
20.2.2  设置合并索引 455
20.2.3  打开和关闭子窗体 457
20.3  MDI子窗体 459
20.3.1  合并工具条 459
20.3.2  显示像素数据 463
20.3.3  两次打开同一个相册 466
20.3.4  更新标题栏 468
20.4  MDI子窗体管理 469
20.4.1  排列MDI子窗体 470
20.4.2  显示MDI子窗体列表菜单 472
20.5  回顾 473
第21章  数据绑定 474
21.1  数据网格视图 475
21.1.1  DataGridView类 475
21.1.2  创建数据网格视图 476
21.1.3  填充数据网格视图 478
21.2  列和行 481
21.2.1  创建列 482
21.2.2  创建组合框列 486
21.2.3  理解带区和行 487
21.3  单元格 491
21.3.1  DataGridViewCell类 491
21.3.2  使用单元格类 492
21.3.3  保存经过修改的相册 495
21.4  回顾 495
第22章  双向数据绑定和绑定源 497
22.1  绑定列表 497
22.1.1  IBindingList接口 497
22.1.2  创建绑定列表 498
22.2  可编辑的对象 502
22.2.1  IEditableObject接口 502
22.2.2  创建可编辑的对象 502
22.3  简单数据绑定 505
22.3.1  BindingSource类 506
22.3.2  更改MyAlbumData应用程序 507
22.3.3  执行简单数据绑定 509
22.3.4  更新数据绑定控件 512
22.3.5  绑定浏览器 515
22.4  回顾 517
第23章  .NET杂记 519
23.1  打印 519
23.1.1  使用打印类 520
23.1.2  绘制打印页面 522
23.2  拖放 526
23.2.1  启动拖放操作 527
23.2.2  接收拖放数据 529
23.3  网页浏览 531
23.3.1  创建一个“关于”对话框 532
23.3.2  WebBrowser类 534
23.3.3  浏览网页 534
23.4  应用程序设置 537
23.4.1  存储位置设置 537
23.4.2  定义一个自定义设置 540
23.5  部署 541
23.5.1  创建安装项目 541
23.5.2  发布ClickOnce应用程序 544
23.6  回顾 547
附录A  C#基础知识 548
附录B  .NET命名空间 579
附录C  可视化索引 583
附录D  参考信息 598

教学资源推荐
作者: [美]保罗·C. 乔根森(Paul C. Jorgensen) 著
作者: [日]迈克尔·麦库尔(Michael McCool) [美]阿奇·D. 罗宾逊(Arch D. Robison) [美]仁达敬(James Reinders)著
作者: 许畅 陈嘉 朱晓瑞 编著
作者: (美)Mary Campione Kathy Walrath Alison Huml
参考读物推荐
作者: 丘祐玮(Yu-Wei Chiu)著
作者: 吴茂贵 王冬 李涛 杨本法 著
作者: 游双 著
作者: 杨文海 鲁凤芝 何平 等著