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

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

ID:41037465

大小:387.00 KB

页数:47页

时间:2019-08-14

分享(C#高级编程第6版doc)第31章 Windows 窗体_第1页
分享(C#高级编程第6版doc)第31章 Windows 窗体_第2页
分享(C#高级编程第6版doc)第31章 Windows 窗体_第3页
分享(C#高级编程第6版doc)第31章 Windows 窗体_第4页
分享(C#高级编程第6版doc)第31章 Windows 窗体_第5页
资源描述:

《分享(C#高级编程第6版doc)第31章 Windows 窗体》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第31章Windows窗体基于Web的应用程序在过去几年非常流行。从管理员的角度来看,把所有的应用程序逻辑放在一个中央服务器上是非常吸引人的。但部署基于客户的软件会非常困难,特别是部署基于COM的客户软件。基于Web的应用程序的缺点是它们不能提供丰富的用户体验。.NETFramework允许开发人员创建丰富、智能的客户应用程序,而且不再有部署问题和以前的DLLHell。无论选择Windows窗体还是WPF(参见第34章),客户应用程序都不再难以开发或部署。Windows窗体已经对Windows开发产生了影响。当应用程序处于初始设计阶段时,是建立

2、基于Web的应用程序还是建立客户应用程序已经很难抉择了。Windows客户应用程序开发起来非常快速和高效,它们可以为用户提供丰富的体验。VisualBasic开发人员对Windows窗体应比较熟悉。创建新窗体(也称为窗口或对话框)也采用把控件从工具箱拖放到窗体设计器上的方式。但是,如果您在创建消息泵和监视消息时使用的是C样式的传统Windows编程,或者您是一位MFC程序员,就会发现现在可以获得需要的低级内部功能了。现在可以重写wndproc,捕获这些消息,但常常并不是真需要它们。本章将主要介绍Windows窗体的如下方面:● Form类● W

3、indows窗体的类层次结构● System.Windows.Forms命名空间中的控件和组件● 菜单和工具栏● 创建控件● 创建用户控件31.1 创建Windows窗体应用程序首先需要创建一个Windows窗体应用程序。下面的示例创建了一个空白窗体,并把它显示在屏幕上。这个示例没有使用VisualStudio2008,而是在文本编辑器中输入代码,使用命令行编译器进行编译。下面是代码清单:usingSystem;usingSystem.Windows.Forms;namespaceNotepadForms{publiccalssMyForm:S

4、ystem.Windows.Forms.Form{publicMyForm(){}    [STAThread]staticvoidMain(){Application.Run(newMyForm());}}}在编译和运行这个示例时,会得到一个没有标题的小空白窗体。该窗体没有什么实际功能,但它却是一个Windows窗体。代码中有两个地方需要注意。第一个是使用继承功能来创建MyForm类。下面的代码声明MyForm派生于System.Windows.Forms。publiccalssMyForm:System.Windows.Forms.Form

5、Form类是System.Windows.Forms命名空间的一个主要类。代码的其他部分如下:    [STAThread]staticvoidMain(){Application.Run(newMyForm());}Main是C#客户应用程序的默认入口。一般在大型应用程序中,Main()方法不位于窗体中,而是位于类中,它负责完成需要的启动处理。在本例中,我们在项目属性对话框中设置启动的类名。注意属性[STAThread],它把COM线程模型设置为单线程单元(Single-ThreadedApartment,STA)。COM交互操作需要STA线

6、程模型,默认为添加到Windows窗体项目中。Application.Run()方法负责启动标准的应用程序消息循环。它有3个重载版本:第一个重载版本不带参数,第二个重载版本把ApplicationContext对象作为其参数,本例中的第三个重载版本把窗体对象作为其参数。在这个示例中,MyForm对象是应用程序的主窗体,这表示在关闭这个窗体时,应用程序就结束了。使用ApplicationContext类,可以对主消息循环何时结束和应用程序何时退出有更多的控制权。Application类包含一些非常有用的功能。它提供了一些静态方法和属性,用于控制应

7、用程序的启动和停止过程,访问由应用程序处理的Windows消息。表31-1列出了其中一些比较有用的方法和属性。表 31-1方法/属性说明CommonAppDataPath对应用程序的所有用户都通用的数据路径。一般是BasePathCompanyNameProductNameVersion,其中BasePath是C:DocumentsandSettingsusernameApplicationData。如果该路径不存在,就创建一个ExecutablePath这是启动应用程序的可执行文件的路径和文件名(续表)方法/属性说明LocalUs

8、erAppDataPath类似于CommonAppDataPath,但这个属性支持漫游MessageLoop如果在当前线程上存在消息循环,就返回Tru

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。