控制Windows窗体(C#)

Reflection意思为反射,在.NET中,它是获取运行时类型信息的方式。一般来说,.NET的应用程序由三个部分组成,分别是程序集(Assembly)、模块(Module)、类型(class),而反射提供一种编程的方式,让程序员可以在程序运行期获得这三个组成部分的相关信息。
一、有关知识
1. System.Assembly类
Assembly允许用户访问给定程序集的元数据,它也包含可以加载和执行程序集(程序集可执行的情况下)的方法。这个功能相当强大,可以轻易地取得组件内部所有信息,并且将其应用于映射的机制。常用的有LoadFrom()方法、GetType()方法等。Assembly类可以获得正在运行的装配件信息,也可以动态地加载装配件,以及在装配件中查找类型信息,并创建该类型的实例。

2. System.Type类
Type实际上是一个抽象的基类,它有与每种数据类型对应的派生类,但一般情况下派生类只提供各种Type方法和属性的不同重载,返回对应数据类型的正确数据。它的大多数方法都是用于获取对应数据类型的成员信息,比如:构造函数、属性、方法和事件等,并且能够进行调用。常用的有GetMethod()方法、GetField()方法、GetProperty()方法等。

3. 动态调用方法
方法动态调用是指在执行期利用映射取得的类型方法成员进行动态调用,通过调用实例的Invoke()方法来实现。Invoke方法用以进行方法的动态调用,其一般的定义形式如下:
Invoke(object obj, object[] parameters)
第一个为object类型参数,这个参数对象本身所参考的对象,为所要调用的方法其本身所属的来源对象,而第二个数组对象parameters则是调用指定方法所需的参数集合,若是调用的方法不需传入参数,这个对象数组会参考至一个null值。
二、映射实例
下面通过一个实例,运用映射方法实现对Windows窗体的操纵。

1. 开发环境
操作系统:Windows XP Professional,版本5.1.2600 Service Pack 2
开发工具:Microsoft Visual Studio 2005,版本8.0.50727.42
Microsoft .NET Framework,版本2.0.50727

2. 创建被操纵的Windows窗体
首先创建一个Windows窗体应用程序,名称为DataSquare,Form1窗体包含五个控件:两个textBox、两个Label和一个Button,它实现的功能是计算用户输入数的平方,并将结果显示出来。Form1是一个简单的Windows窗体程序,仅实现了计算平方值的功能,代码有待完善,在这里只是以它作为被操纵的对象来介绍如何使用.NET提供的映射方法。

1 month ago, this page was being read.


Subscribe to Comments