首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

动态生成的menu点击菜单名字如何弹出FORM

2012-10-16 
动态生成的menu点击菜单名字怎么弹出FORM动态生成了一个menu// 扩展属性可以加任何想要的值。这里用formNam

动态生成的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(); 

热点排行