我现在做的是winform项目
在项目里建了一个主窗体和多个子窗体
namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}//在【Test】下还建了多个窗体:Form2、Form3//在主窗体通过点击一个菜单时,需要实例一个窗体,现在知道这个窗体名称(Form1、Form2、Form3)string strForm = "Form1";//如何通过 strForm 达到这样的效果:Form1 frm = new Form1();
frm.Show();

解决方案 »

  1.   

    (Activator.CreateInstance(Type.GetType("Form1")) as Form).Show();
      

  2.   

                string str = "WindowsApplication2.Form2";
                Type t = Type.GetType(str);
                Assembly ass = Assembly.GetAssembly(t);
                Form form=ass.CreateInstance(str) as Form;
                form.Show();
      

  3.   

    string str = "命名空间.Form2";
    --------------------------------------
    一楼的加上命名空间也可以
      

  4.   


    火眼金睛啊,确实漏了,然后如果是同一个assembly采用Type.GetType,如果不在一个assembly则需要先得到对应 assembly然后assembly.GetAssembly.可以考虑MEF