winform 使用反射动态创建窗体,有谁知道的?

解决方案 »

  1.   

    var form = (Form)Activator.CreateInstance("命名空间.Form名");如果不是一个dll的var form = (Form)Activator.CreateInstance("命名空间.Form名,程序集名(不带dll)");
      

  2.   

    http://www.cnblogs.com/wayfarer/archive/2004/07/22/26453.html
      

  3.   

    Assembly myAs = Assembly.LoadFrom(Application.StartupPath + "\\" + @"xxx.dll");
                    Type t = myAs.GetType(bar.Description.ToString());
                    Object obj = Activator.CreateInstance(t);
                    Form frm = (Form)obj;
                    frm.show();
      

  4.   

    var form = (Form)Activator.CreateInstance(Type.GetType("命名空间.Form名"));漏了写GetType了。
      

  5.   


    Assembly myAs = Assembly.LoadFrom(Application.StartupPath + "\\" + bar.GlobalName.ToString());//程序集
                    Type t = myAs.GetType(bar.Description.ToString());//类名
                    Object obj = Activator.CreateInstance(t);
                    Form frm = (Form)obj;