1.如果只是一级菜单就解决的话,使用控件Contextmenustrip,动态添加ToolStripMenuItem就可以了,
自己设置一下name/click/text的属性就可以了
2.如果是多级菜单呢,需要注意以下问题(代码部分是手敲的,大小写有点问题,想用的改一下就可以了)
ToolStripMenuItem强制转换为ToolStripDropDownItem类型才能添加子项,其实你自己看看Form1.Designer.cs里设计器自动生成的代码就会明白了,方法如下
//一级菜单
List<string> aa=new List{"aa"};;
//二级菜单
List<string> bb=new List{"b1,b2"};
//1.只添加一级菜单
ToolStripMenuItem menu_item=new ToolStripMenuItem();
menu_item.name="aa";
menu_item.text="aa";
menu_item.text="aa";
menu_item.click+=new EventHandler(Click);
contextMenuStrip1.Items.add(menu_item);
//2.添加多级菜单,以两级菜单为例
ToolStripMenuItem menu_item=new ToolStripMenuItem();
menu_item.name="aa";
menu_item.text="aa";
menu_item.text="aa";
foreach(var item in bb )
{
ToolStripMenuItem menu_item_temp=new ToolStripMenuItem();
menu_item_temp.name=item;
menu_item_temp.text=item;
menu_item_temp.click+=new EventHandler(Click);
((ToolStripDropDownItem)menu_item).items.add(menu_item_temp);
}
contextMenuStrip1.Items.add(menu_item);