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