我现在遇到一个问题
做了一个程序是读取一个程序使用的菜单的二维数组
一维是菜单显示文本,一维是对应调用的窗体名,
//定义二维数组(假设程序中有设计两个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的窗体呢?
}
做了一个程序是读取一个程序使用的菜单的二维数组
一维是菜单显示文本,一维是对应调用的窗体名,
//定义二维数组(假设程序中有设计两个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的窗体呢?
}
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();