首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么将一个字符串转化为窗体类

2012-03-30 
如何将一个字符串转化为窗体类窗体的名称是以字符形式记录的。现在要打开这个窗体,怎么样进行类转化?才可以

如何将一个字符串转化为窗体类
窗体的名称是以字符形式记录的。
现在要打开这个窗体,怎么样进行类转化?才可以将其转化为Form类。谢谢

string str_frm = "From2";


[解决办法]

[解决办法]
反射或者序列化。
[解决办法]

C# code
//利用反射可以解决你的问题,需要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(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")

热点排行