扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:Microsoft 2007年11月10日
关键字: Visual Basic 动态加载 类
最能体现这种适应性的是动态集成新功能的能力。例如,在 Windows 窗体应用程序中,这种能力是指加载编译原始应用程序很久以后创建的窗体的能力。
这种操作在 Microsoft Visual Basic® 6.0 中几乎是不可能的,但是在 Visual Basic .NET 中却相当容易。利用 System.Reflection 命名空间的功能,程序只需知道程序集的位置即可请求动态加载该程序集。然后即可加载该程序集中的类并对类进行实例化。由于 Windows 窗体也是一种类,这就意味着可以动态地加载、显示和使用窗体,即使在编译原始程序时窗体并不存在。
典型的方案假设我们有一个多文档界面 (MDI) 应用程序,需要具有将任意窗体加载为子窗体的能力。那么应用程序应该能够执行以下操作:
让我们编写这样一个应用程序,看看如何完成动态加载。
步骤 1:创建项目和 MDI 窗体启动一个新的 Windows 窗体项目。将其命名为 FormsOnTheFly。在新项目中包含的空窗体 Form1 中,将它的 IsMdiContainer 属性更改为 True。这样,该窗体即变成一个 MDI 父窗体。更改窗体的大小,使窗体的长和宽的尺寸大约为默认值的两倍。
将一个面板控件拖动到窗体上,然后设置它的 Dock 属性,使它靠接在窗体的顶部。更改面板的大小,使它的高度大约为 0.5 英寸。
将一个组合框拖动到面板上。将它命名为 cboForms,然后将它的 DropDownStyle 设置为 DropDownList。
最后,将一个按钮拖动到面板上。将它命名为 btnLoadForm,然后将它的 Text 属性设置为 Load Form。
此时,Form1 应如图 1 所示。
图 1:添加所有控件后处于设计模式下的 MDI 窗体
步骤 2:生成一个类,以存放可用窗体的数据我们将获取可能从基于 XML 的配置文件之外加载的窗体的有关信息。但是,为了更便于在组合框中显示可用窗体并获取有关所选窗体的信息,还应建立一个对象集合。集合中的每个对象都将存放一个可用窗体的信息。对象应具有以下属性:
这样的集合可以数据绑定到列表框中。要从列表框中返回对所选对象的引用,还需要一个属性,我们称之为 Reference。
要创建类,请选择 Project | Add Class(项目|添加类),然后将类命名为 DynamicClass.vb。在类中添加以下代码:
Public Class DynamicClass
Dim msLocation As String Public Sub New(ByVal sLocation As String, _ Public Property Location() As String Public Property Type() As String Public Property Description() As String Public ReadOnly Property Reference() As Object |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者