快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

使用反射实现根据名称动态创建窗体的几种方式

 方式1使用activator方式创建实例

Dim str As String

        str = \"Form2\"  \\\'必须是 命名空间++窗体类名(这里假设为命名空间为空)

        Dim tempAssembly As [Assembly] = [Assembly].GetExecutingAssembly()

        Dim t As Type = tempAssembly.GetType(str)

        Dim args() As Object = Nothing

        Dim o As Object = System.Activator.CreateInstance(t, args)

        CType(o, Form2).Show()

        \\\'Dim frm2 As Form = CType(tempAssembly.CreateInstance(str), Form)

        \\\'frm2.Show()

////////////////方式2使用构造函数的invoke方式创建实例。

        Dim ty() As Type = {} 该构造函数没有参数

        Dim c As ConstructorInfo = t.GetConstructor(ty) 获得没有参数的构造函数

        Dim args1() As Object = Nothing ‘参数为空

        Dim p As Object = c.Invoke(Nothing) ‘创建实例时参数为空

        CType(p, Form2).Show()

方式3 ///////////////////////////////////////使用assembly.createinstance方式创建实例

      Dim str As String

        str = \"Form2\"  \\\'必须是 命名空间++窗体类名

        Dim tempAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()

 

        Dim frm2 As Form = CType(tempAssembly.CreateInstance(str), Form)

        frm2.Show()


返回类别: 教程
上一教程: r.a.d.controls Q2 2005中TreeView 控件遮挡问题
下一教程: .Net正式版中的一些Bug及其解决方案

您可以阅读与"使用反射实现根据名称动态创建窗体的几种方式"相关的教程:
· 利用反射,实现动态调用winform窗体!!
· .NET中窗体间相互访问的几种方法
· 如何使用asp+ 动态创建页面元素
· 在.NET上如何根据字符串动态创建控件
· Asp.net 页面导航的几种方式与比较
    微笑服务 优质保证 索取样品