Windows Forms编程实战

当前位置:首页 > 网络编程 > 编程语言与程序设计 > Windows Forms编程实战

出版社:机械工业出版社
出版日期:2008-1
ISBN:9787111221142
作者:布朗
页数:599页

媒体关注与评论

  “超值的章节,超值的书!”  --联合国高级架构师BerndtHamboeck  “对开发人员来说是美味可口的大餐,而对WindowsForms来讲是另类的革新。”  --微软技术和CatalystIT服务部主任DaveCorun  译者序  本书是美国.NET技术专家ErikBrown的力作。本书以生动翔实的语言,描述了在VisualStudioC#2005开发环境中进行WindowsForms编程的各方面细节。  本书紧紧围绕WindowsForms这个主题,对各种WindowsForms特性进行了极为详细的介绍,而对其他细节涉墨甚少。本书并没有介绍面向对象编程,也没有花太多的篇幅介绍C#编程语言的细节(只是在附录A简单地描述了C#语言的结构)。关于VisualStudioC#2005开发环境的许多使用技巧,则分散在具体的应用场合进行说明,而不是开辟专门的章节予以介绍。根据译者的体验,前者的效果要好得多。  如果读者想寻找一本教材,认真学习WindowsForms编程的细节,那么本书是一个非常理想的选择。本书以一个相册应用程序为主线,在学习过程中不断融入新的WindowsForms特性,使它从一个简单的只能显示单张照片的应用程序发展成为一个具有丰富特性的产品级相册应用程序,能够实现高级的浏览和打印功能。  本书的另一个特性是它所采用的表格代码,把实现每个特性所需要的代码以表格的形式分步骤显示,虽然对译者而言增加了很大的工作量,但对于读者而言,这样的代码形式看起来非常清楚,能够立即明白完成某一步骤需要哪些代码。  如果说这本书有什么缺陷的话,就是它的整体性非常强,需要读者耐心地从头到尾读完这本书,才能收到良好的效果。如果读者只是想了解某个WindowsForms特性(例如TreeView控件)的内容,可能因为本书内容的连贯性太强而无从下手。从这个意义上说,这本书更适合当教材,而不是作为参考手册。  不管怎样,这是一本非常出色的WindowsForms专著,它在这个领域所发掘的深度远远超过普通的.NET编程书籍。如果读者能够耐心地读完本书,一定可以取得巨大的收获。  前言  当我还在学校的时候,当我毕业后在不同的创业公司打拼的时候,我深信UNIX将统治这个世界,从来不曾想到自己会站在计算机行业的“公敌”Microsoft一边。我饶有趣味地发现自己出版了不止一本书,为Microsoft的技术传经布道。我想读者应该知道自己该走什么路,而我现在已经完全投身于Windows的开发之中。幸运的是,我对自己的转变深感快乐,而我原本以为自己是误入歧途。  至于出版这本书的想法,要想实现起来却并不容易。创作所带来的激情很快就会消退,你会意识到自己不仅想写一本书,而且想写一本好书。这会改变你的思维和方法,因为你必须付出极大的精力和时间使它变“好”。然后有一天,你又会发现一个事实,你不仅想写一本好书,而且想写一本人们喜欢并且愿意购买的书。  这正是我写作本书第1版和第2版的经历。第1版获得了相当的成功,因此为.NET2.0推出第2版不仅顺理成章,而且看上去似乎很容易。遗憾的是,Microsoft那帮聪明的伙计们在WindowsForms中添加并修改了相当多的内容,使我感觉就像完全重写一本新书一样。  读者可能会以为写作第2版要比第1版更为容易,其实不然。虽然我知道如何对正文进行组织,并且知道基本的格式是一样的。但是,作为一名“经验更丰富的作者”,我必须对本书以及书中的示例程序进行更合理的设计。每章的内容更为简捷,我试图利用自己在Unisys公司所积累的.NET企业级应用程序的开发经验,实现更好的程序设计。我在主要的MyPhotos应用程序之外添加了一些分支,覆盖了一些其他材料,为一些有趣的话题提供了示例代码。  另外一个原因是当我编写本书的第1版时还是一名顾问,因此我可以脱开几个星期,全身心地投入到写作之中。现在,作为一名全职的项目经理,找出充裕的时间来完成第2版的写作并不是一件容易的事情。我的家庭和朋友对这两个版本的写作提供了相当大的支持,对此我深表谢意。  最后,我发现自己对本书的第2版非常满意。有些关键的概念,例如加密、自定义控件、进度条等,以相当自然的方式融入到本书之中。我喜欢第2版的章节规划,并且从第1版的18章扩展到第2版的23章。我对索引部分也是相当满意,相信读者会发现它比第1版的索引更为有用。第1版和第2版的另一处较大修改是书名。这个版本被命名为“WindowsFormsinAction”,以区别于其他书籍,并且与Manning新的“InAction”系列保持一致。书中大量使用的“活动-结果”表格正是这个新书名的由来。新的书名、新的封面、新的章节,就像推出一本新书一样。希望读者能够喜欢!  引言  NET框架所涵盖的主题相当广泛,用一本书的篇幅覆盖所有的主题是不可能的。本节介绍本书的焦点,并对正文的内容以及约定进行了简单的介绍。本节的末尾描述了本书的在线论坛,读者可以通过它了解和本书有关的各种问题和评论,并了解如何从Internet下载本书所使用的源代码。  介绍.NET  Microsoft善于改造自己。它最初是一家纯粹的操作系统公司,随后对业务进行了拓展,推出了像Word和Excel这样的办公软件,后来又通过InternetExplorer把目光瞄向了Internet。创建.NET的动力很可能来自Internet和Java作为大规模计算机解决方案的通用环境所获得的成功。.NET框架的第1个版定义了两个重要的概念。第1个是一种全新的语言C#,第2个是基于Windows的解决方案的标准框架。  理解C#的最简单方法也许是想象有人把C++的所有恼人之处都写下来,然后设计一种语言,把这些恼人之处都去掉。例如,在C++中,处理指针是件痛苦的事情,有很多代码错误(例如if(x=5))并没有被编译器所捕捉,操纵字符串比较困难,没有一种很好的方式把一个对象安全地“向下转换”为派生类型的对象。C和C++的前驱B和BCPL语言并没有定义正式的类型系统,这是因为考虑到在这些语言中整数、指数和字符的互通本质。  C#语言进行了精心设计,既保留了C和C++语言的灵活性,又对类型系统以及语言的语法进行正式化。C++中的许多常见运行时错误在C#中变成了编译错误。其他明显的区别是C#增加了内置的字符串类型,并且不再使用全局变量,把关键的系统和应用程序错误集成了一种通用的异常模型中。本书的附录A对C#语言的语法、关键字和特性进行了简单介绍。后面的“.NET2.0的新特性”一节对.NET框架2.0版本所作的主要修改进行了总结。  NET框架为大多数Microsoft的开发技术和环境提供了一个公共的主题,并随着时间而发生变化。除了把公司聚集在一个称为.NET的单一品牌之下这个好处之外,.NET框架还具有一个重要的技术目标。这个框架在本质上是在Windows平台上所运行的应用程序的一个执行环境。  Java环境的核心是提供一个环境,允许在任何操作系统中运行由单一的语言所编写的程序。.NET框架的核心则是提供一个环境,允许在单个操作系统中运行使用任何语言所编写的程序。很难说哪个更好,作者在这里只是为了指出Java和.NET的基本目标是不同的。  .NET框架是以命名空间的形式组织的。第1章将讨论这个概念,但是读者在这里只要简单地知道命名空间定义了相关联的类以及其他类型的逻辑集合。关于.NET框架所支持的各个命名空间的总结,可以参考本书后面的附录B。  命名空间对.NET框架所支持的大量对象集合进行结构化。对于作者而言,它指引了写作本书的方向和焦点。本书的焦点是System.Windows.Forms命名空间,可以简单地称为WindowsForms。WindowsForms应用程序就是由Windows操作系统所执行的程序,这种程序所使用的用户界面特性正是Windows桌面用户极为熟悉的。  本书试图对WindowsForms进行系统的介绍,将介绍这个命名空间所定义的大多数类型。附录C提供了WindowsForms命名空间的类图,并提供了参考表格或参考章节,帮助读者快速找到每个类或类型在书中定义的地方。

内容概要

  Erik Brown,是数学家出身,具有17年的软件开发、软件架构和软件管理的丰富经验,同时也是成功创办过3家公司的企业家。他是基于Windows的应用程序和数据驱动接口方面的咨询专家。目前他在Unisys公司担任项目经理。  徐波,浙江宁波人,熟悉C、C++和Java语言。2002年开始从事计算机技术图书翻译,第一部译作《C专家编程》博得好评,其谦逊平和的态度也使读者产生好感。他技术视野广阔,翻译文笔优美,是颇具潜力的译作者。

书籍目录

第1部分  欢迎进入Windows Forms世界第1章  初识Windows Forms
21.1  用C#编程
21.1.1  命名空间和类
41.1.2  构造函数和方法
51.1.3  C#的类型
51.1.4  Main方法
71.1.5 Application类
81.1.6  程序的执行
91.2  Windows Forms控件
91.2.1  using指令
111.2.2  控件类
121.2.3  Controls属性
131.3  加载文件
131.3.1  事件
151.3.2  OpenFileDialog类
161.3.3  Bitmap图像
181.4  更改窗体的大小
191.4.1  Anchor属性
201.4.2  Dock属性
211.5  回顾
23第2章  欢迎使用Visual Studio
242.1  使用Visual Studio编程
242.1.1  创建项目
252.1.2  执行程序
272.1.3  观察源代码
272.2  Windows Forms控件
312.2.1  AssemblyInfo文件
312.2.2  对窗体进行重命名
332.2.3  工具箱窗口
342.3  加载文件
382.3.1  在Visual Studio中处理事件
382.3.2  处理异常
412.4  改变窗体的大小2.4.1  设置Anchor属性2.4.2  设置Dock属性2.5  回顾第2部分  Windows Forms基础知识第3章  菜单3.1  控件和容器3.1.1  控件类3.1.2  容器类3.2  菜单的本质3.2.1  菜单术语3.2.2  .NET中的菜单3.3  菜单栏3.3.1  添加菜单条3.3.2  添加菜单项3.3.3  添加下拉菜单项3.4  菜单处理3.4.1  通过设计窗口添加事件处理方法3.4.2  通过属性窗口添加事件处理方法3.5  回顾第4章  上下文菜单和状态条4.1  上下文菜单条4.1.1  创建上下文菜单4.1.2  向上下文菜单添加菜单项4.1.3  共享上下文菜单4.2  下拉事件和事件参数4.2.1  处理子菜单项点击4.2.2  在显示子菜单之前对它进行更改4.3  状态条4.3.1  创建状态条4.3.2  添加状态条标签4.4  回顾第5章  可复用类库5.1  类库5.1.1  创建类库5.1.2  使用命令行工具5.1.3  创建Photograph类5.1.4  定义类的属性5.2  object类5.2.1  比较object和Object5.2.2  重写object类的方法5.3  接口5.3.1  接口和集合5.3.2  理解集合类5.4  泛型5.4.1  泛型类5.4.2  理解泛型集合5.4.3  资源的销毁5.5  回顾第6章  文件和常用对话框6.1  标准菜单6.1.1  更改菜单栏6.1.2  管理相册6.2  常用文件对话框6.2.1  创建新相册6.2.2  打开相册6.2.3  保存相册6.2.4  打印和退出6.3  流和写入器6.3.1  Stream类6.3.2  把相册写入磁盘6.3.3  从磁盘中读取相册6.4  相册管理6.4.1  添加和删除图像6.4.2  浏览相册6.4.3  显示相册的状态6.5  回顾第7章  对话框7.1  消息框7.1.1  创建OK消息框7.1.2  创建YesNo消息框7.1.3  创建YesNoCancel消息框7.2  Form.Close方法7.2.1  比较Close和Dispose7.2.2  拦截Form.Close方法7.3  窗体和面板7.3.1  Form类7.3.2  创建对话框7.4  无模式对话框7.4.1  创建无模式对话框7.4.2  向窗体添加面板和标签7.4.3  更新PixelDialog控件7.4.4  显示无模式对话框7.4.5  更新PixelDialog窗体7.4.6  追踪鼠标移动7.5  回顾第8章  文本框8.1  窗体的继承8.1.1  创建基类窗体8.1.2  创建派生类窗体8.2  标准文本框8.2.1  添加文本框8.2.2  添加多行文本框8.2.3  连接对话框8.3  掩码文本框8.3.1  处理KeyPress事件8.3.2  设置文本的掩码8.4  回顾第9章  按钮9.1  下压按钮9.1.1  Button类9.1.2  扩展PhotoAlbum类9.1.3  存储相册数据9.2  单选按钮9.2.1  RadioButton类9.2.2  创建相册对话框9.3  复选框按钮9.3.1  CheckBox类9.3.2  使用复选框按钮9.3.3  完成AlbumEditDialog窗体9.3.4  再次连接对话框9.4  工具提示和错误提示9.4.1  ToolTip类9.4.2  显示工具提示9.4.3  创建扩展器提供程序9.4.4  ErrorProvider类9.5  回顾第10章  处理用户输入和加密10.1  键盘事件10.1.1  3种事件10.1.2  处理KeyPress事件10.1.3  处理KeyDown和KeyUp事件10.1.4  预处理命令键10.2  鼠标事件10.2.1  MouseEventArgs类10.2.2  使用鼠标事件实现FlybyTextProvider10.2.3  使用FlybyTextProvider类10.3  加密10.3.1  Cryptography命名空间10.3.2  对数据进行加密10.3.3  写入加密数据10.3.4  读取加密数据10.3.5  存储经过加密的相册10.4  链接标签10.4.1  LinkLabel类10.4.2  保存加密相册10.4.3  打开经过加密的相册10.5  回顾第11章  列表框11.1  列表控件11.1.1  ListControl类11.1.2  创建一个新的解决方案11.1.3  重构应用程序的代码11.2  简单的列表框11.2.1  ListBox类11.2.2  显示数据源11.2.3  选择列表元素11.3  多选列表框11.3.1  启用多选功能11.3.2  改变列表项的顺序11.3.3  删除列表元素11.4  回顾第12章  组合框12.1  标准组合框12.1.1  ComboBox类12.1.2  创建组合框12.1.3  选择列表框中的列表项12.1.4  修改数据源12.2  可编辑的组合框12.2.1  再次创建组合框12.2.2  动态更新组合框12.3  自动完成12.3.1  理解自动完成12.3.2  在组合框中使用自动完成功能12.4  列表项的格式化12.4.1  格式化接口12.4.2  实现IFormattable接口12.4.3  在列表控件中使用格式化12.4.4  实现自定义格式化12.5  回顾第13章  选项卡控件和选项卡页面13.1  选项卡控件的基础知识13.1.1  TabControl类13.1.2  创建选项卡控件13.2  选项卡页面的基础知识13.2.1  TabPage类13.2.2  创建选项卡页面13.2.3  在选项卡页面中封装现有的控件13.3  自绘制的选项卡13.3.1  DrawItem事件13.3.2  绘制页面的选项卡13.3.3  使用自绘制的选项卡控件13.4  自绘制的列表框13.4.1  自定义的列表项13.4.2  设置列表项的大小13.4.3  绘制列表项13.5  回顾第14章  日期、日历和进度条14.1  显示日期和时间14.1.1  DateTimePicker类14.1.2  创建DateTimePicker控件14.2  日期和时间的格式14.2.1  对日期和时间值进行格式化14.2.2  自定义DateTimePicker控件14.3  日历14.3.1  MonthCalendar类14.3.2  UserControl类14.3.3  创建日历控件14.3.4  初始化日历14.3.5  在日历控件中处理鼠标点击14.4  进度条14.4.1  创建image用户控件14.4.2  ProgressBar类14.4.3  执行后台任务14.5  回顾第15章  装饰和美化15.1  图像和光标15.1.1  Bitmap类15.1.2  图标15.1.3  光标15.2  嵌入式资源和声音15.2.1  嵌入资源15.2.2  使用项目资源文件15.2.3  播放声音15.3  滑动条15.3.1  TrackBar类15.3.2  使用滑动条15.4  计时器15.4.1  Timer类15.4.2  使用计时器15.5  回顾第16章  工具条16.1  工具条的基础知识16.1.1  ToolStrip类16.1.2  创建工具条16.2  工具条项的基础知识16.2.1  ToolStripItem类16.2.2  添加标准工具条项16.2.3  工具条项的对齐、溢出和其他特性16.3  图像列表16.3.1  ImageList类16.3.2  创建图像列表16.3.3  添加自定义工具条按钮16.4  工具条容器16.4.1  ToolStripContainer类16.4.2  在容器中嵌入一个工具条16.5  特殊的按钮项16.5.1  切换按钮16.5.2  下拉按钮16.5.3  分隔按钮16.6  回顾第3部分  高级Windows Forms第17章  自定义控件17.1  扩展现有的控件17.1.1  设计可滚动图片框17.1.2  创建可滚动图片框17.1.3  实现可滚动图片框17.2  基于Control类的自定义控件17.2.1  创建一个基于Control的类17.2.2  自定义控件的公共特性17.3  ScrollablePictureBox类17.3.1  绘制控件17.3.2  改变控件的大小17.3.3  处理属性的变化17.4  用户控件17.5  Visual Studio中的自定义控件17.5.1  对类的行为进行自定义17.5.2  对类成员的行为进行自定义17.5.3  对设计时的行为进行自定义17.6  回顾第18章  资源管理器界面和树形视图18.1  界面风格18.1.1  单文档界面18.1.2  多文档界面窗口18.1.3  资源管理器界面18.2  .NET的资源管理器界面18.2.1  SplitContainer类18.2.2  TreeView类18.2.3  创建资源管理器界面18.3  树节点18.3.1  TreeNode类18.3.2  创建树节点18.4  自定义树形视图18.4.1  创建自定义树形视图18.4.2  创建自定义的树节点18.4.3  使用接口的自定义节点18.4.4  展开和收缩树节点18.4.5  选择和编辑树节点18.4.6  集成自定义树形控件18.5  回顾第19章  列表视图19.1  列表视图的基础知识19.1.1  ListView类19.1.2  创建列表视图19.1.3  生成列表视图19.2  列表视图的列19.2.1  定义列标题19.2.2  生成列表视图的列19.2.3  对列表视图的列进行排序19.3  列表视图的特性19.3.1  选择列表项19.3.2  编辑列表项的标签19.3.3  激活列表项19.4  虚拟项19.5  回顾第20章  多文档界面20.1  MDI窗体20.1.1  创建MDI容器20.1.2  创建MDI子窗体20.1.3  更新应用程序的入口20.2  合并菜单20.2.1  设置合并操作20.2.2  设置合并索引20.2.3  打开和关闭子窗体20.3  MDI子窗体20.3.1  合并工具条20.3.2  显示像素数据20.3.3  两次打开同一个相册20.3.4  更新标题栏20.4  MDI子窗体管理20.4.1  排列MDI子窗体20.4.2  显示MDI子窗体列表菜单20.5  回顾第21章  数据绑定21.1  数据网格视图21.1.1  DataGridView类21.1.2  创建数据网格视图21.1.3  填充数据网格视图21.2  列和行21.2.1  创建列21.2.2  创建组合框列21.2.3  理解带区和行21.3  单元格21.3.1  DataGridViewCell类21.3.2  使用单元格类21.3.3  保存经过修改的相册21.4  回顾第22章  双向数据绑定和绑定源22.1  绑定列表22.1.1  IBindingList接口22.1.2  创建绑定列表22.2  可编辑的对象22.2.1  IEditableObject接口22.2.2  创建可编辑的对象22.3  简单数据绑定22.3.1  BindingSource类22.3.2  更改MyAlbumData应用程序22.3.3  执行简单数据绑定22.3.4  更新数据绑定控件22.3.5  绑定浏览器22.4  回顾第23章  .NET杂记23.1  打印23.1.1  使用打印类23.1.2  绘制打印页面23.2  拖放23.2.1  启动拖放操作23.2.2  接收拖放数据23.3  网页浏览23.3.1  创建一个“关于”对话框23.3.2  WebBrowser类23.3.3  浏览网页23.4  应用程序设置23.4.1  存储位置设置23.4.2  定义一个自定义设置23.5  部署23.5.1  创建安装项目23.5.2  发布ClickOnce应用程序23.6  回顾附录A  C#基础知识附录B  .NET命名空间附录C  可视化索引附录D  参考信息

编辑推荐

  本书由浅人深地介绍Windows Forms编程的技巧和各种实用方法。本书先详细介绍了菜单、状态条、可复用类库、文件对话框、文本框、按钮、列表框、组合框、选项卡控件等Windows Forms基础知识,然后在高阶应用中还介绍了自定义控件、列表视图、资源管理器、树型视图、多文档界面和数据绑定等扩展性内容。本书内容详实,实用性极强,通过大量的图表和程序实例形象而立体地说明了各种控件的操作和需要注意的重难点,可以使读者领略到使用Windows Forms编程的轻松和乐趣。  本书适合计算机编程开发人员参考。

作者简介

★一本非常出色的Windows Forms专著,它在这个领域所发掘的深度远远超过普通的.NET编程书籍! 

本书由浅入深地介绍Windows Forms编程的技巧和各种实用方法。本书先详细介绍了菜单、状态条、可复用类库、文件对话框、文本框、按钮、列表框、组合框、选项卡控件等Windows Forms基础知识,然后在高阶应用中还介绍了自定义控件、列表视图、资源管理器、树型视图、多文档界面和数据绑定等扩展性内容。本书内容详实,实用性极强,通过大量的图表和程序实例形象而立体地说明了各种控件的操作和需要注意的重难点,可以使读者领略到使用Windows Forms编程的轻松和乐趣。
本书适合计算机编程开发人员参考。


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

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

图书封面


 Windows Forms编程实战下载



发布书评

 
 


精彩短评 (总计2条)

  •     可惜我已经转战WPF,哈哈~
  •     原版书太老了,C#还不支持泛型时出的。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024