- 8
- 0
- 约5.48万字
- 约 48页
- 2016-12-05 发布于重庆
- 举报
分享(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 这是启动应用程序的可执行文件的路径和文件名 (
您可能关注的文档
最近下载
- 某天然气公司燃气系统运行安全现状评价报告.doc
- 维修Switch+中文版教程.pdf VIP
- 公共营养师四级试题【含答案】.docx VIP
- 统编人教部编版小学六年级下册道德与法治第一单元教学案.docx VIP
- IPC-6012F-CN-中文版 2024 TOC 刚性印制板的鉴定及性能规范.pdf VIP
- 2025年寒假作业七年级生物北师大版答案.pdf VIP
- impella for doctors左心辅助知识讲座.pptx VIP
- 成人患者医用粘胶相关性皮肤损伤的预防及护理(1).pptx VIP
- 安徽省高新技术产品国际竞争力:现状、挑战与提升策略.docx VIP
- PENTAX宾得 645NII相机手册.pdf VIP
原创力文档

文档评论(0)