使用 Microsoft.NET Frameworks 创建Windows应用程序

不_可一世_JJ

不_可一世_JJ

2016-02-19 12:16

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的使用 Microsoft.NET Frameworks 创建Windows应用程序,过去的都会过去,迎接崭新的开始,释放更美好的自己。
 使用 Microsoft.NET Frameworks 创建基于 Windows 的应用程序Shawn Burke
Microsoft Corporation
2000年9月

摘要: :本文介绍了 Win 表单这一新的窗体程序包,借助这一程序包,开发人员能够充分利用 Microsoft Windows 操作系统所提供的 UI 功能。

目录 简介 介绍 Win Forms 更好的易学易用性 布局 GDI+ 访问底层系统 结论



简介

目前 Web 已成了街谈巷议的话题,看起来好像 Microsoft? Visual Studio? 开发系统对创建基于 Microsoft Windows? 的传统应用程序的支持有所减弱。实际上,Microsoft 对基于 Windows 的应用程序开发方面的投资在不断加大。

Win 表单是一个新的窗体程序包,借助这一程序包,开发人员能够充分利用 Microsoft Windows? 操作系统所提供的丰富的用户界面功能,创建基于 Windows 的应用程序。Win Forms 是新的 Microsoft?.NET 平台的一个组成部分,它提供了许多新技术,包括通用的应用程序框架、可管理的执行环境、一体化的安全性以及面向对象的设计原则。而且,Win Forms 全面支持快速简便地接入 Web Services 以及建立丰富的基于 ADO+ 数据模型的数据感知应用程序。得益于 Visual Studio 中新的共享开发环境,开发人员能够使用包括 Microsoft Visual Basic? 和 C# 在内的任何支持 .NET 平台的语言创建 Win Forms 应用程序。


介绍 Win Forms

就像刚才所说的,Win Forms 是专用于 Windows 客户机 UI 编程的 .NET Framework 的命名空间。它与 ASP+ UI 程序包(即 Web Forms)共享同样的设计原则,但其类和实现却全然不同。在 Microsoft Win32? API 和 Web 组件之间没有魔术般变形的类。就像所有的 .NET Frameworks 一样,一致性已成为优先考虑的问题。其目的是为了 Win Forms 开发人员能够迅速适应在 Web Forms 中编写代码,反之亦然。例如,所有命名空间都有 Button 类,每一个都有文本、默认的 OnClick 事件以及 ForeColorBackColorFont 属性。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

Win Forms 的所有控件都基于 System.WinForms.Control 类。Control 已内置了所有基本的 HWND 功能,并且它能处理我们已经熟悉并喜爱的绝大多数通用 WM_xxxx 消息。RichControl 由 Control 派生而来,其中添加了布局逻辑和绘图代码。System.WinForms 命名空间中的绝大多数控件实际上都由 RichControl 派生而来。ScrollableControl 能够支持窗口客户区域的滚动。一般情况下,对滚动功能的支持是通过 ContainerControl 实现的,后者由 ScrollableControl 派生而来,并增加了对管理子控件、焦点问题和跨栏的支持。Form 由 ContainerControl 派生而来,是 Win Form 的顶级控件,它带有控制标题栏、系统菜单、非矩形窗口和默认控件的属性。UserControl 也由 ContainterControl 派生而来,是开发人员能够创建的控件的基本类。UserControl 一般用于托管其它子控件,但对于外部客户机来说,它又是作为单个单元出现的。UserControl 和 Form 在 Microsoft? Visual Studio.NET 中都有可视设计器,您会找到用于添加和设计由其所派生的类的项。

图 1. Win Forms 控件层次结构

既然我们已了解 Win Forms 的(最)基本方面,让我们揭开它的面纱,看看其表面下的一些相当不错的功能。


更好的易学易用性

Win Forms 的主要目的是尽可能地提高定位到 Win32 平台的开发人员的工作效率。无论是图形设备界面 (GDI) 还是窗口状态管理,为 Win32 编程通常都是很困难的。例如,类似 WS_BORDER 或 WS_CAPTION 的一些窗口样式只能在创建窗口时指定或修改。而 WS_VISIBLE 或 WS_CHILD 等其它窗口样式则可以对已创建的窗口进行修改。Win Forms 尽力消除了这些细微的差别,并确保操作过程始终保持一致性。可以随时地、不限次序地对 Win Forms 控件的属性进行设置,总能产生预期效果。如果改动过程需要创建新的 HWND,Win Forms 框架能够自动地、透明地重新生成窗口,并为其应用相适宜的所有设置。

由控件获得通知或事件在 Win Forms 中也要容易得多。Win Forms 事件都基于称为 Delegates 的一个通用语言运行时功能。Delegates 从本质上讲是对类型安全的、可靠的函数指针。对于任一控件的任一事件,都可以添加代理处理程序;绝不会强迫您创建派生类以通过替代处理事件,创建事件映射,或仅为处理一个事件而为类的所有事件实施一个接口。也可以通过替代派生类处理事件,但这种方式一般用于控件创建者或更为高级的应用。汇集某一按钮的 Click 事件相当简单:

public class ButtonClickForm: System.WinForms.Form {private System.WinForms.Button button1;public ButtonClickForm() {// 创建按钮button1 = new System.WinForms.Button();  // 添加处理程序button1.AddOnClick(new System.EventHandler(button1_Click));// 将按钮添加到窗体中this.Controls.Add(button1);  }private void button1_Click(object sender, EventArgs e) {MessageBox.Show("button1 clicked!");  }}

这里,我们创建了一个按钮,并添加了一个名为 button1_Click 的处理程序方法,通过短短几行代码,在单击该按钮后,将调用这一方法。请注意,即使处理程序方法被标记为专用,创建这一挂钩的代码仍可以使用该方法,单击按钮后,按钮将能够激活这一方法的事件。

启动 Win Forms 项目的过程也得到了简化。使用 Visual Studio.NET 创建 Win Forms 项目的过程只会创建一个要编译的项目文件:Form1.cs。没有头文件,没有接口定义文件,没有引导程序文件,没有资源文件,没有库文件。项目所需的所有信息都包含在窗体的代码中。这样做有一个好处:项目由一个简单的单窗体应用程序扩展到复杂的、带有多个代码文件的多窗体应用程序要方便得多。链接过程不需要中间对象文件,只有代码和已构建的、受管理的所有 DLL。只要您习惯了这一方法,就能明显地感觉到创建 .NET Framework 应用程序和创建 C/C++ 应用程序之间复杂性的不同。因为信息仅仅包含在代码文件中,在 Visual Studio.NET 环境外创建版本的过程也非常容易,无论是 Visual Basic 代码、C# 代码,还是任何其它语言编写的针对 .NET Framework 的代码。

因为 Win Forms 建立在通用语言运行时的基础之上,开发人员可以任选目前针对通用语言运行时的众多语言中的一种,构建 Win32 应用程序。开发人员现在可以使用多种语言编写 Win Forms 应用程序(或 Web Forms 应用程序或 Data 应用程序):从 C# 到 COBOL 到 Eiffel 再到 Perl 等等,中间还有很多种(上一次计数是 17 种)。方便易用再加上广泛的应用场合相得益彰,为开发人员提供了深厚的基础,使他们能够迅速有效地使用 Win Forms 构建实用的应用程序。


布局

如果您曾尝试创建能够正常调整大小的窗体,您就会知道这一过程有多么困难。Microsoft Foundation Classes (MFC) 或早期的 Visual Basic 版本没有对这一功能提供内置的支持。然而现在只需几行代码(通常情况下您甚至不需要编写这些代码,因为在设计时就能通过 Property Browser 实现这些功能!),即可创建能够正常调整大小的对话框。

基本布局由两条组成:Anchoring 和 Docking。RichControl 有一个 Anchor 属性,它是一种枚举类型,可以用“或”操作将这些值组合在一起,以说明控件将与其父控件的某一边保持恒定距离。例如,如果您将一个按钮置于窗体上,并将 Anchor 属性设置为 AnchorStyles.BottomRight,则在调整按钮的大小时,按钮将与窗体的底边和右边保持同一距离。此外,如果将 Anchor 设置为 AnchorStyles.All,则按钮的各个边都与窗体的对应边保持同一距离,在调整按钮大小时仍要满足这些约束条件。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

Docking 实际上是 Anchoring 的一个特殊情况。RichControlDock 属性说明控件要将自身固定到其父控件的哪一边。Docking 可以是 Top、Left、Right、Bottom 或 Fill。在每种情况下,控件都将移动到尽量靠近指定边,并调整其大小,以填满那一边。如果父控件的大小有所调整,这一状况仍将保持。将一个控件移

展开更多 50%)
分享

猜你喜欢

使用 Microsoft.NET Frameworks 创建Windows应用程序

编程语言 网络编程
使用 Microsoft.NET Frameworks 创建Windows应用程序

使用VBA创建应用程序

autocad教程
使用VBA创建应用程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用VBA创建应用程序教程

autocad教程
使用VBA创建应用程序教程

AutoCAD中使用VBA创建应用程序教程

autocad教程
AutoCAD中使用VBA创建应用程序教程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用VisualLISP创建简单的LISP应用程序教程

autocad教程
使用VisualLISP创建简单的LISP应用程序教程

4.4 创建移动Web应用程序

Web开发
4.4 创建移动Web应用程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

html5指南-7.geolocation结合google maps开发一个小的应用

html5指南-7.geolocation结合google maps开发一个小的应用

现代Java Web开发架构分析

现代Java Web开发架构分析
下拉加载更多内容 ↓