找回密码
 注册

QQ登录

只需一步,快速开始

搜索

Windows Forms 2.0程序设计 (高清PDF带书签)

[复制链接]
山海致远 发表于 2013-7-2 02:22:28 | 显示全部楼层 |阅读模式
s5885934.jpg
Windows_Forms_2.0程序设计.pdf (85.58 MB, 售价: 8 E币)
基本信息
原书名: Windows Forms 2.0 Programming (2nd Edition)
原出版社: Addison-Wesley Professional
作者: (美)Chris Sells    Michael Weinhardt    [作译者介绍]
译者: 汪泳
出版社:电子工业出版社
ISBN:9787121058684
上架时间:2008-4-8
出版日期:2008 年4月
开本:16开
页码:988
版次:1-1
1.png
内容简介

  如果你想开发优秀的windows forms 2.0应用程序,本书就是你书架上必不可少的参考书,它也是windows forms 2.0的最佳使用指南。全书包括19章和6个附录,全面地讲解了windows forms 2.0的各项技术,还深入地探讨了各种类型应用程序的解决方案。在讲解这些技术的同时,还列举了与windows forms之前的版本不同的地方以及一些新增的内容。特别值得一提的是附录中最后一部分讲解的文档管理功能,windows forms应用程序的开发人员可以使用它来搭建应用程序的架构。本书适合有.net背景知识的windows forms应用程序学习者阅读,有经验的windows forms开发人员也可以从中学到大量的高级技巧和内幕功能。由于本书讲解的内容非常全面,本书还适合教学人员使用作为参考书。

作译者回到顶部↑
本书提供作译者介绍
  Chris Sells是互联系统部门的程序经理。他写过几本书,其中包括Programming Windows Presentation Foundation(O’Reilly)、Windows Forms Programming in C#(Addison-Wesley),以及ATL Internals(Addison-Wesley)。在他的闲暇时间,Chris主持着几个会议并且在Microsoft内部产品团队讨论列表上拥有自己的一个列表。关于Chris和他的几个项目的更多信息可以参见http://www.sellsbrothers.com
Michael Weinhardt是Microsoft的程序员和作家,在Windows Client SDK部门供职。Michael与Chris一起..
目录

第一章 你好,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
第二章 窗体 37
2.1 显示窗体 37
拥有者窗体和附属窗体 38
2.2 窗体生命周期 40
窗体打开阶段 41
……………………
……………………
译者序
  毫无疑问,本书是迄今为止Windows Forms程序设计领域中最完整、最全面的一本书。.
  Chris Sells 和 Michael Weinhardt的独特的写作手法,就像是有一位大师在旁边向你娓娓道来,从编写Windows Forms的入门基础、控件的应用到完成各种类型的应用程序所需了解的技能的详细讲解,在内容的全面和细节的深入之间,他们找到了绝佳的平衡点。书中还提供了大量的代码示例和截图,一方面使得读者可以很轻松地掌握开发Windows Forms应用程序所需的各种技能,另一方面读者也可以将这些非常实用的代码用于自己的开发项目中。
  全书覆盖了Windows Forms技术各个方面的重要概念,从窗体的基础、控件的使用、数据绑定、数据验证、组件和自定义控件到资源管理、本地化应用程序以及ClickOnce部署技术都有深入的探讨。..
  本书还有一个特点,作者将Windows Forms技术和Visual Studio 2005开发工具这对完美搭档结合在一起讲解,让读者可以充分地利用VS05提供的强大的功能,这在别的书籍上是找不到的。
  如果你希望能够开发高质量的成功的Windows Forms应用程序,并且希望利用到Windows Forms 2.0的绚丽多彩的新特性,本书绝对应该是不二之选。而且,我认为这应该会成为Windows Forms应用程序开发人员必不可少的参考书。当你在开发过程中碰到不清楚的问题时,它都可以作为你可靠的指南。
  本书在翻译过程中得到了博文视点工作人员的热心帮助,在此向他们表示感谢。同时,我还要特别感谢我的妻子,没有她的支持,本书的翻译是不可能顺利完成的。本书的内容非常丰富,由于时间仓促,技术水平有限,不足之处还望读者一一指正。
  汪 泳
  2007年12月...

前言
  Windows 1.0的程序员能够做的事情很简单。他们几乎不能选择实现程序的方法,可能有一个应用程序编程接口(API),也可能没有,而且大多数时候都没有。这意味着开发人员必需手工创建几乎所有的东西。在那个时候,这还不是问题。所有的Windows程序员都碰到过相同的限制,所以大家的应用程序或多或少地都在与相同的受限功能集合打交道。.
  另一方面,当时的Windows开发人员被淹没在选择的海洋中。Web的开发为我们带来了静态超文本标记语言(HTML)、通过ASP.NET实现基于服务器的用户界面(UI)交互、通过ActiveX控件或AJAX(代表了几样东西) 实现客户端的用户界面交互。在客户端,我们还有原生框架,如Microsoft基础类库(MFC)、活动模板库(ATL)和被称为Windows Presentation Foundation的下一代的托管框架库(WPF是.NET框架下一个版本WinFX的一部分)。开发人员如何选择呢?本书讨论的Windows Forms 2.0话题在这些技术中位于什么样的位置呢?
  Windows上的客户端技术提供了从支持跨平台的技术到具有丰富特性的技术这个范围中进行不同层次的选择。跨平台是用户界面在不同的操作系统上都能够运行的能力,而丰富性是用户界面利用它运行的操作系统功能的能力。因此,即使静态HTML几乎在任何地方都可以运行,但是,如果HTML中使用了客户端JScript,跨平台的能力就缩减到那些支持脚本技术的浏览器中。另外一个就是ActiveX控件,它只能在Windows上运行,但支持所有的丰富特性。
  在另外一个极端上,我们有WPF技术,它是在DirectX基础上创建的一个全新的托管框架。WPF在一个单一的并且内聚的整体中包含了文档、布局、动画、2-D、3-D、文本和图形等元素。这个框架提供了Microsoft创建的最丰富的客户端技术,它最大程度地利用了它运行的平台的能力,其中包括任何可用的硬件3-D图形加速卡。然而,当撰写本书时,WPF还没有发布,它只能在Windows XP、Windows Server 2003和Windows Vista下运行。
  Windows Forms 2.0还剩下多少空间可以发挥呢?它的丰富性不如WPF,但是比起HTML技术来说又丰富得多。Windows Forms 2.0的功能比Windows Forms 1.0也丰富了许多,其中包括大大增强的对灵活布局的支持、最新的菜单条和工具条控件、数据绑定、多线程、强类型资源和设置,以及最重要的ClickOnce部署。
  有了ClickOnce技术,用户第一次能够和Web应用程序一样轻松地部署Windows应用程序。而且更好的是,ClickOnce技术还允许Windows应用程序能够在本地安装、集成进Start菜单,并且在没有网络连接的情况下仍然可用。这些选项对于Web应用程序的用户是不可用的。
  因此,Windows Forms 2.0的特性还是很丰富的,但是在跨平台方面呢?和Web应用程序不同,Windows Forms要求用户机器运行Windows,明确地说,就是安装了Windows 98或之后版本的PC机。然而,它还支持其他设备,例如Pocket PC或Smartphone,这是通过.NET Compact框架来实现的。这意味着我们可以编写一个Windows Forms 2.0应用程序并在Windows智能手机上运行这个应用程序。
  基于这一层次的丰富性和跨平台特性,我们应该使用Windows Forms来创建哪种类型的应用程序呢?答案是,人们使用Windows Forms创建过几乎所有类型的应用程序,其中包括生产力应用程序、工具软件、企业工具软件,甚至游戏。Windows Forms可以被用来创建小一点的软件,例如Microsoft自己内部的人力资源应用程序(叫做HeadTrax),或者也可以被用来创建大一点的软件,例如Visual Studio 2002版在Visual Studio开发工具之上创建的大多数用户界面增强功能。之所以能够创建这些类型的应用程序,是因为Windows Forms丰富的特性和工具、跨平台性以及这个版本之后基于社区使用的和反馈的实现成熟度特性。
  实际上,.NET开发人员社区非常喜欢Windows Forms,甚至到了质疑“早期的.NET是集中在基于Web的应用程序”这种说法的程度。基于我在培训行业中的朋友和本书第1版的销售情况,我认为,有大量的并且数量不断增加的开发人员在编写Windows Forms应用程序。正是为了这些开发人员,我们才编写了本书。
  谁应该阅读这本书
  Who Should Read This Book?
  当编写本书的时候,我们希望同时为已经在.NET中写过程序的程序员和还没有写过程序的程序员提供实际的Windows Forms知识。因此,当每个核心的.NET话题出现时,我们都会做一个简单的介绍。然而,我们并不试图包括全部.NET框架的内容,它太庞大了。相反,当我们需要更多的有用信息的时候,会引用其他的提供了完整细节的文章。特别地,大家会发现我们大量地引用了由Don Box和Chris Selss所著的Essntial .NET一书,这是一本很好的补充读物。同样地,我们还推荐了由Ingo Rammer所著的Advance .NET Remoting一书和由Jeffrey Richter所著的Applied Microsoft .NET Framework Programming一书(关于这些书的更多细节,请参见“参考资料”)。
  .NET的一个核心话题对Windows程序员具有特殊的意义,我们在附录C“委托和事件”中详细讨论了这些内容。如果大家是.NET编程的初学者,这部分内容尤其重要。但是在学到Windows Forms的一些框架性知识之前,我们也不会推荐大家深入研究这一话题(这些框架性的知识可在第1章“你好,Windows Forms”中学到三分之一左右)。
  我们提供了附录B“从MFC转移到Windows Forms”和附录F“文档管理”,这些内容对以前的MFC程序员(或者就快成为以前的)来说尤其重要。虽然Windows Forms没有提供MFC的所有特性,但我们努力地在本书的材料和代码示例中填补了这些缺陷。
  另外一个值得注意的地方是:几年前,一位作者编写了他的第一个5天培训课程。这个培训课程的话题就是Windows 95,其中包括了需要花几个小时对Windows 95的新控件的讨论:控件的样子、属性、方法和事件以及如何访问它们。这些时间对参与的人来说会觉得很长。某个特定控件的细节只有当我们在需要使用它的时候才令人感兴趣,而且是在当真正需要使用控件的时候,控件的文本和Visual Studio的智能提示帮助功能很好地为我们提供了所需的信息。
  因此,本书没有完整地介绍任何标准控件。相反,如果某个控件在当前话题的场景下令人感兴趣,我们就会相应地介绍那个控件,就像在第17章“应用数据绑定”中介绍DataGridView控件一样。另外,为了列出所有的组件和控件,并对每个控件的主要功能做一介绍,附录D“组件和控件概览”提供了标准控件和组件的列表。我们不会浪费大家的时间去试图提供比.NET框架的SDK和Visual Studio 2005内置的参考文档还全面的内容。相反,本书专注于实际的开发场景,这些内容在别的地方是找不到的。最后,为了帮助大家理解组件和控件的区别以及如何创建它们,我们提供了第9章“组件”和第10章“控件”。
  约定
  Conventions
  如果你决定尝试阅读本书,我们会感谢你对我们的信任并表达我们希望你能顺利完成的心愿。为了帮助你阅读本书,希望你了解我们使用的一些约定。
  首先,贯穿全书都使用了一种指代模式(除了本部分)。因为Chris和Michael工作时联系紧密并且努力斟酌书中的每句话,我“I”这个词的使用实际上意味着“两个作者”,而使用我们“we”实际上意味着“作者和读者你”。虽然我们有时会直接使用“你”,但Chris和Michael倾向于使用“我们”这个词。..

序言
  很久很久以前,当我开始编写PC上的用户界面代码时,还没有现在这些很棒的框架。那时候的人们需要在case语句中编写大量的C代码,代码的长度比巨人的汗衫还长。我曾经在我们创建的一个应用程序中花费了几个星期去理解并实现DDE(是的,是DDE)(并且坦白地说,这并不是非常愉快的一次体验),之后我在一本杂志中看到了一篇文章,它演示了一个叫做“Smalltalk”的很棒的东西——使用几行代码就能够实现DDE了。我当时想:哇!真棒。这正是我喜欢的编程方式!从那以后,我使用它实现了很多的用户界面框架,最终导致我在Microsoft有了份与Windows Forms相关的工作。.
  对于Windows Forms的第一个版本来说,我们的目标是创建一个全面的用户界面框架,这个框架可以将VB的易用性与MFC的可扩展性和灵活性结合在一起。在开发过程中,我们又加入了更多的目标,其中包括丰富的设计期扩展性、GDI+支持以及对部分信任环境下的无接触部署(NTD)的支持。我相信我们已合理地实现了这些目标。尽管当我们第一次发布Windows Forms时,业界的焦点已经转移到了Web上,现在还是有大量的程序员在使用Windows Forms创建各种类型的应用程序,从照片管理软件到支持核心商业流程的应用程序。我发现看到人们使用Windows Forms创建有趣的应用程序是对我工作的最大奖赏。然而,说实话,还有些地方,我们可以做得更好。例如,Visual Studio 不支持NTD技术,并且当发生错误需要调试的时候可能会很复杂,所以总的来说,我会给Windows Forms的第一个版本做一个“显示承诺”的评价。
  Windows Forms 2.0试图实现这样的承诺。这是Windows Forms的一个重大改进。Windows Forms的设计期和运行时功能的几乎所有部分都得到了改进。正如Chris和Michael在附录A“Windows Forms 2.0”的新特性中所指出的,我们将全新的特性与对现存的特性的改进很好地结合在了一起(大约有329个新类型、139个更新过的类型以及14 323个新成员)。我不打算重复附录A的内容,我将特别指出并说明是如何达到Windows Forms这个版本目标的三个新特性的:它们是部署问题的解决、更绚丽的应用程序和更高的开发效率。
  部署
  Deployment
  我认为.NET框架2.0版的一个最重要的特性(不只是Windows Forms,而是整个.NET框架)就是ClickOnce。ClickOnce实现了无接触部署的承诺,将容易的、可靠的、可管理的基于Web的部署方式带给了客户端应用程序。通过Web部署应用程序,在Visual Studio 2005中现在只需要使用向导一步步地设置就可以了。
  绚丽的应用程序
  Great-Looking Apps
  从我加入Microsoft开始,顾客就一直要求具有内置的能够创建与Microsoft Office相似的应用程序的功能,使用新的菜单条控件MenuStrip、工具条控件ToolStrip以及状态条控件StatusStrip,我们在Windows Forms 2.0版中就能够做到这一点。工具条控件不仅支持标准Windows和Office外观,而且还可以自定义,使得它们看起来跟你所喜欢的样子一样。
  开发效率..
  Productivity
  我们添加了一整套改进的设计期和运行时,相信通过这些改进,可以大大提高大家的开发效率。其中一个我最喜欢的新的设计器特性就是SnapLines,这允许我们在布局窗体时快速地对齐控件。只要用过具有SnapLines功能的设计器,我们就不想回到与设计器功能相同的IntelliSense上了。
  未来
  The Future
  发布完Windows Forms 2.0之后,我们的思路自然地转向了未来。预测未来是一件危险的事情。我孩提时的大多数预测都没有兑现,所以我对做任何长期预测都有点不安。然而,基于我们已经做到的事情和希望能够做到的事情,我可以发表一些看法。首先,对于.NET框架和托管代码,我的看法如下:它是现在和未来都要用到的编程模型。学习如何使用.NET框架和Windows Forms是对未来的可靠投资。其次,为了解释Samuel Clemens所说的话,“关于客户端应用程序已死的报告被过分地夸大了,”我对客户端应用程序的看法如下:客户端应用程序现在可以和Web应用程序一样容易被部署,提供了重大的商业价值,而且随着时间推移还将提供更多的价值。第三,作为对Windows Forms技术的持续投资的一部分,我们将确保Windows Forms和那些如WinFx这样的新的即将发布的技术能够很好地结合在一起。这允许我们使用这种技术创建今天的应用程序,并且还将在未来使用Windows Forms和新技术来增强那些应用程序的功能。最后,从Windows Forms的角度来看,我相信我们需要扩大框架和设计体验所提供的功能以支持创建客户端应用程序的整个过程。我们已经拥有了强大的设计器帮助我们创建用户界面,但是我们仍然需要编写太多的代码来创建整个应用程序。我希望看到我们能够提供强大的基于设计器的整个应用程序的设计体验,而不仅仅是为窗体提供设计器功能。
  因此,希望我所说的关于Windows Forms至少让你对发现本书中包含的更多内容感到有点好奇。本书第1版提供了对Windows Forms的杰出的概述和介绍方面的内容。第2版同样如此。不管是第一次学习Windows Forms,还是仅仅希望获得对2.0版本中所提供的新东西的了解,本书都将有助于你。它覆盖了所有的重要的特性类别,从创建窗体的基础知识、工具条框架和数据绑定,到ClickOnce部署技术。
  本书在内容的权衡方面也做得很好:它既没有忽略Visual Studio 2005的存在,也没有将内容简化到对Visual Studio 2005特性的简化的“点击这里然后点击那里”这种类型的描述。本书不仅揭示了概念以及说明了在代码中如何使用这些概念,而且还说明了设计器是如何通过自动生成代码以帮助我们提高开发效率的。数据绑定部分的内容就是这种方式的一个很好的例子(第16章和第17章):它们不会太短以至于没什么用,也不会太长以至于过于啰嗦。引用Alan Cooper的话来说,因为它们是“正确的”,所以它们是“黄金代码”示例。
  我希望特别强调一下数据绑定部分的章节(第16章和第17章),这不仅是因为我非常喜欢数据绑定,而且是因为本书在解释数据绑定的工作原理以及如何有效地使用它这方面做得非常好。我还想强调一下编写控件和组件等的设计期行为方面的章节(第11章和第12章),这是因为这个话题经常被忽视。这些章节也使得本书成为我的必读之书。
  因此,总的来说,本书不仅教会了大家如何有效地使用作为Windows Forms一部分的知识,而且还让大家了解到编写自己运行时和设计期扩展所需要了解的东西。
  我将以一些致意和感谢的话作为我的结束。首先,感谢整个Windows Forms开发团队,他们竭尽所能地工作从而创建和发布了我相信是非常伟大的一个产品。我对我们获得的成就感到非常自豪。其次,要感谢Michael和Chris,他们不仅仅是编写了一本书来解释我们的产品并使得这个产品对我们的客户来说更加容易使用,而且还为广泛的Windows Forms社区做出了卓越的贡献。感谢Michael在MSDN上发表的优秀文章以及对Windows Forms 2.0的反馈,尤其是对ToolStrip控件做出的反馈。感谢Chris对Windows Forms的几乎无限的激情,撰写的关于Windows Forms的优秀文章,对Windows Forms、MFC和Windows等技术的深入了解,以及他对产品各个方面的礼貌和有分寸但是热心而且丰富的反馈。Mike和Chris在提升对产品的理解和帮助Windows Forms变得如此优秀等方面给予了我们巨大的帮助。最后,要感谢我们的客户:Windows Forms 2.0中的所有特性都是基于你们的反馈来实现的。所以向所有花时间给予我们反馈和建议的人们表示感谢,请继续支持我们!

媒体评论
  总有些书的独特内容是Internet上搜索不到的,那些书的作者拥有可以共享的真实体验,并且书中的代码可以用在正式的项目中。本书正是一本这样的书。.
  —NealMyrddin,独立开发人员
  Chris和Michael掌握了WindowsForms 2.0的灵魂。本书提供了对WindowsForms的设计以及与新的2.0特性的集成等内容的富有洞察力的见解。对于初学Windows Forms的程序员和经验丰富的商业应用程序开发人员,本书都同样适用。附录“2.0中的新特性”也值得单独拿出来推荐。
  —MikeHarsh,微软公司,WindowsForms程序经理
  本书讨论了一种范围很广并且深入的技术,并将它分解为容易理解的可管理的片段。如果想创建复杂的WinForms应用程序,离开本书你将无法生存。
  —Ryan Dorrell,ASileThought,首席技术执行官
  《Windows Forms 2.0程序设计》提供了所有.NET开发人员都需要的一些东西。有经验的开发人员会喜欢本书中对新的2.0特性的深入的讨论,其中包括对ClickOnce部署技术、多线程和无所不在的新的设计器集成功能的最全面的讨论。初学WinForms程序设计的开发人员会喜欢本书对所有WinForms开发人员都需要知道的基础知识的讨论。不管是有经验的WinForms开发人员,还是初学者都需要这本书。..
  —Fritz Onion,Pluralsight公司的联合创始人,Essential ASP.NET一书的作者,—ASP.NET最有价值专家
  我不需要一本仅仅说明了WinForms组件的书。我可以在网上或其他书中获得这些内容。我需要的是一本可以让我避免犯错误的指南以及对常见问题的有创意的解决方案。这正是本书的闪光点。将本书第1版作为必不可少的参考书的所有人都会喜欢讨论了WinForms 2.0功能的这一更新过的版本。
  一Johan Ericsson,软件工程师,Agilent Technologies公司
  Chris Sells撰写的书籍总是富有洞察力的,这本最新的书籍也不例外。本书尤其适合希望不仅了解WindowsForms2.0的漂亮界面,而且想了解它是如何与.NET环境相结合的人。读者将会长时间地将本书放在他们的书桌上,而不是束之高阁。
  —Yoshimatsu Fumiaki,住在日本东京的软件工程师
  本书将开发成功的Windows Forms应用程序所需了解的信息展示给大家,Chris和Mike为此做出了卓越的贡献。
  —Jessica Fosler,开发技术带头人,微软公司
  本书是WinForms2.0教学和参考的必备书籍。
  —Jim Rittenhouse,高级软件工程师,西门子公司...





quakebug 发表于 2017-4-12 22:57:17 | 显示全部楼层
很有用的东西. 非常感谢楼主分享
huahuoo 发表于 2017-10-23 20:30:38 | 显示全部楼层
很好的资料谢谢分享!
51cc 发表于 2019-2-24 15:19:26 | 显示全部楼层
这纸质的书本都买不到了
ly416 发表于 2021-12-6 10:34:43 | 显示全部楼层
谢谢分享
zhangfuqiang 发表于 2023-9-16 06:47:33 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-3-29 05:34

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表