读书人

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

发布时间: 2012-03-30 17:32:09 作者: rapoo

如何将一个字符串转化为窗体类
窗体的名称是以字符形式记录的。
现在要打开这个窗体,怎么样进行类转化?才可以将其转化为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")

读书人网 >C#

热点推荐