如何将一个字符串转化为窗体类 窗体的名称是以字符形式记录的。现在要打开这个窗体,怎么样进行类转化?才可以将其转化为Form类。谢谢string str_frm = "From2"; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给一个代码实例好吗?我是初学者!TKS! //利用反射可以解决你的问题,需要using System.Reflection;string str_frm = "From2";string typeName="命名空间."+str_frm;//注意这里需要全类名Type fType=Type.GetType(str_frm);Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);//f就是你要的东西 丫曰:Type fType=Type.GetType(str_frm);得到的值是null哦,后面一句就报错了。 //利用反射可以解决你的问题,需要using System.Reflection;string str_frm = "From2";string typeName="命名空间."+str_frm;//注意这里需要全类名Type fType=Type.GetType(str_frm);Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);//f就是你要的东西改撑//利用反射可以解决你的问题,需要using System.Reflection;string str_frm = "From2";string typeName="命名空间."+str_frm;//注意这里需要全类名Type fType=Type.GetType(typeName);Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);//f就是你要的东西 string typeName = "myNamespace.myForm"; Form frm = (Form)Activator.CreateInstance(Type.GetType(typeName));private Form LoadForm(string AssemblyName, string TypeForm) { Assembly _Assembly = Assembly.Load(AssemblyName); Type _FormType = _Assembly.GetType(TypeForm); object _LoadForm = _FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null); return (System.Windows.Forms.Form)_LoadForm; } form名:form1命名空间:A(Form)Activator.CreateInstance(null, "A." + "form1") typeName就是类名系统不能用简化的类名所以你必须加上你的命名空间。比如 System.String,就不能写成String要注意,窗体类必须和你代码在一个程序集中。 关于Code First 代码迁移问题 byte[]转换成long的过程中,索引超出范围。急! winform分布式开发,对跨服务器间的数据库进行连接查询 SQL中image的长度 各位高手!帮小弟一个GridView删除的忙!太急了!谢谢~50分! 关于照片信息的一个简单问题!!!!! Reportviewer Textbox 空格换行 c# 拆分完字符串后 如何查找? 如何动态自动调整Listbox的宽度? c#不能catch哪些Exception? C#做一个游戏的自动喊话系统,求教,求源码 怎么把数据库中的一张数据表中的图片字段里的2进制转换成图片放到picturebox里?
//利用反射可以解决你的问题,需要using System.Reflection;
string str_frm = "From2";
string typeName="命名空间."+str_frm;//注意这里需要全类名
Type fType=Type.GetType(str_frm);
Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);
//f就是你要的东西
得到的值是null哦,后面一句就报错了。
string str_frm = "From2";
string typeName="命名空间."+str_frm;//注意这里需要全类名
Type fType=Type.GetType(str_frm);
Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);
//f就是你要的东西改撑
//利用反射可以解决你的问题,需要using System.Reflection;
string str_frm = "From2";
string typeName="命名空间."+str_frm;//注意这里需要全类名
Type fType=Type.GetType(typeName);
Form f=(Form)fType.InvokeMember("乱写",BindingFlags.CreateInstance,null,null,null);
//f就是你要的东西
Form frm = (Form)Activator.CreateInstance(Type.GetType(typeName));private Form LoadForm(string AssemblyName, string TypeForm)
{
Assembly _Assembly = Assembly.Load(AssemblyName);
Type _FormType = _Assembly.GetType(TypeForm);
object _LoadForm = _FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
return (System.Windows.Forms.Form)_LoadForm;
}
命名空间:A
(Form)Activator.CreateInstance(null, "A." + "form1")
系统不能用简化的类名
所以你必须加上你的命名空间。
比如 System.String,就不能写成String
要注意,窗体类必须和你代码在一个程序集中。