动态生成的menu点击菜单名字怎么弹出FORM
动态生成了一个menu
// 扩展属性可以加任何想要的值。这里用formName属性来加载窗体。
subMenu.Tag = dtcd2.Rows[j]["caidanmingcheng"].ToString();
//给没有子菜单的菜单项加事件。
subMenu.Click += new EventHandler(subMenu_Click);
void subMenu_Click(object sender, EventArgs e)
{
string formName = ((ToolStripMenuItem)sender).Tag.ToString();
Assembly asm = Assembly.Load("WindowsFormsApplication2");//程序集名
object frmObj = asm.CreateInstance("WindowsFormsApplication2." + formName);
Form frms = (Form)frmObj;
frms.Tag = formName.ToString();
frms.MdiParent = this;
frms.Show();
}
这里只能显示WindowsFormsApplication2这个程序集下面的所有FORM,但是不可能把所有的FORM放进一个WindowsFormsApplication2里的啊
是否是方法错了???有没有直接点击动态的菜单,此时只能取到点击选中的TEXT,怎么弹出FORM啊???
------解决方案--------------------
把你其他程序集的form导入到WindowsFormsApplication2,参照追加
你这样写了还是不能从别的程序集中反射form
从别的程序集中反射需要首先加载该文件,然后反射其中的类型。
C# code
Assembly ass = Assembly.LoadFile(@"C:\testProjects\testApp\testAlgorithm\bin\Debug\testAlgorithm.exe");
Form form = (Form)ass.CreateInstance("testAlgorithm.Form1");
form.Show();