我现在遇到一个问题
做了一个程序是读取一个程序使用的菜单的二维数组
一维是菜单显示文本,一维是对应调用的窗体名,
//定义二维数组(假设程序中有设计两个form=form1,form2)
string[,] Mymenu = new string[,]{ {"menu1","form1"} , {"menu2","form2"} }
//菜单点击事件
private void menu_Clicked(object sender, EventArgs e)
{
//当点击menu1时
if (sender.ToString() == Mymenu[0,0])
???怎样实例化Mymenu[0,1]中名为form1的窗体呢?
//当点击menu2时
if (sender.ToString() == Mymenu[1,0])
???怎样实例化Mymenu[1,1]中名为form2的窗体呢?
}

解决方案 »

  1.   

    Form form = null;
    Type type = Type.GetType("命名空间.窗体名");
    form = (Form) Activator.CreateInstance(type);
    form.Show();
    //或者:
    Assembly assm = Assembly.LoadFrom("e:\\WindowsApplication.dll");
    Type TypeToLoad= assm.GetType("WindowsApplication.Form1");object obj;
    obj = Activator.CreateInstance(TypeToLoad);
    Form formToShow = null;
    formToShow = (Form)obj;
    formToShow.Show();