• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
//方法1使用activator方法创建实例


{
	string str = null;

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

	Assembly tempAssembly = Assembly.GetExecutingAssembly();

	Type t = tempAssembly.GetType(str);

	object[] args = null;

	object o = System.Activator.CreateInstance(t, args);

	((Form2)o).Show();

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

	//frm2.Show()

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

	Type[] ty = { };
	//该构造函数没有参数

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

	object[] args1 = null;
	//参数为空

	object p = c.Invoke(null);
	//创建实例时参数为空

	((Form2)p).Show();

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

	string str = null;

	str = "Form2";
	//必须是 命名空间+点+窗体类名
	System.Reflection.Assembly tempAssembly = System.Reflection.Assembly.GetExecutingAssembly();
	Form frm2 = (Form)tempAssembly.CreateInstance(str);
	frm2.Show();
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#泛型列表ListT基本用法总结发布时间:2022-07-13
下一篇:
C#中的委托和事件——转自张子阳发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap