分享(C#高级第6版doc):第31章 Windows 窗 体.docVIP

分享(C#高级第6版doc):第31章 Windows 窗 体.doc

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分享(C#高级第6版doc):第31章 Windows 窗 体

第31章Windows 窗 体 基于Web的应用程序在过去几年非常流行。从管理员的角度来看,把所有的应用程序逻辑放在一个中央服务器上是非常吸引人的。但部署基于客户的软件会非常困难,特别是部署基于COM的客户软件。基于Web的应用程序的缺点是它们不能提供丰富的用户体验。.NET Framework允许开发人员创建丰富、智能的客户应用程序,而且不再有部署问题和以前的DLL Hell。无论选择Windows窗体还是WPF(参见第34章),客户应用程序都不再难以开发或部署。 Windows窗体已经对Windows开发产生了影响。当应用程序处于初始设计阶段时,是建立基于Web的应用程序还是建立客户应用程序已经很难抉择了。Windows客户应用程序开发起来非常快速和高效,它们可以为用户提供丰富的体验。 Visual Basic开发人员对Windows窗体应比较熟悉。创建新窗体(也称为窗口或对话框)也采用把控件从工具箱拖放到窗体设计器上的方式。但是,如果您在创建消息泵和监视消息时使用的是C样式的传统Windows编程,或者您是一位MFC程序员,就会发现现在可以获得需要的低级内部功能了。现在可以重写wndproc,捕获这些消息,但常常并不是真需要它们。 本章将主要介绍Windows窗体的如下方面: ●?Form类 ●?Windows窗体的类层次结构 ●?System.Windows.Forms命名空间中的控件和组件 ●?菜单和工具栏 ●?创建控件 ●?创建用户控件 31.1? 创建Windows窗体应用程序 首先需要创建一个Windows窗体应用程序。下面的示例创建了一个空白窗体,并把它显示在屏幕上。这个示例没有使用Visual Studio 2008,而是在文本编辑器中输入代码,使用命令行编译器进行编译。下面是代码清单: using System; using System.Windows.Forms; namespace NotepadForms { public calss MyForm : System.Windows.Forms.Form { public MyForm() { } ???? [STAThread] static void Main() { Application.Run(new MyForm()); } } } 在编译和运行这个示例时,会得到一个没有标题的小空白窗体。该窗体没有什么实际功能,但它却是一个Windows窗体。 代码中有两个地方需要注意。第一个是使用继承功能来创建MyForm类。下面的代码声明MyForm派生于System.Windows.Forms。 public calss MyForm : System.Windows.Forms.Form Form类是System.Windows.Forms命名空间的一个主要类。代码的其他部分如下: ???? [STAThread] static void Main() { Application.Run(new MyForm()); } Main是C#客户应用程序的默认入口。一般在大型应用程序中,Main()方法不位于窗体中,而是位于类中,它负责完成需要的启动处理。在本例中,我们在项目属性对话框中设置启动的类名。注意属性[STAThread],它把COM线程模型设置为单线程单元(Single-Threaded Apartment, STA)。COM交互操作需要STA线程模型,默认为添加到Windows窗体项目中。 Application.Run()方法负责启动标准的应用程序消息循环。它有3个重载版本:第一个重载版本不带参数,第二个重载版本把ApplicationContext对象作为其参数,本例中的第三个重载版本把窗体对象作为其参数。在这个示例中,MyForm对象是应用程序的主窗体,这表示在关闭这个窗体时,应用程序就结束了。使用ApplicationContext类,可以对主消息循环何时结束和应用程序何时退出有更多的控制权。 Application类包含一些非常有用的功能。它提供了一些静态方法和属性,用于控制应用程序的启动和停止过程,访问由应用程序处理的Windows消息。表31-1列出了其中一些比较有用的方法和属性。 表? 31-1 /属性 说 明 CommonAppDataPath 对应用程序的所有用户都通用的数据路径。一般是BasePath\Company Name\Product Name\Version,其中BasePath是C:\Documents and Settings\ username\ApplicationData。如果该路径不存在,就创建一个 ExecutablePath 这是启动应用程序的可执行文件的路径和文件名 (

文档评论(0)

kri234 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档