C# Winform动态菜单实现
实现功能:
当一个平台支持多个产品时,有多个产品说明书,要在帮助菜单子菜单显示说明书名称,点击名称打开对应的说明书。
1、在窗体中放入MenuStrip控件menuStrip1,准备书名书并放在Specification文件加下;

2、创建添加菜单方法
ToolStripMenuItem AddContextMenu(string text,ToolStripItemCollection cms, EventHandler callback){if (text == "-"){ToolStripSeparator tss = new ToolStripSeparator();cms.Add(tss);return null;}else if (!string.IsNullOrEmpty(text)){ToolStripMenuItem tsmi = new ToolStripMenuItem(text);tsmi.Tag = text;if (callback != null){tsmi.Click += callback; }cms.Add(tsmi);return tsmi;}return null;
}
3、添加Click事件处理函数
private void Menu_Clicked(object sender, EventArgs e){string text = (sender as ToolStripMenuItem).Tag.ToString();System.Diagnostics.Process.Start(Environment.CurrentDirectory + "\\Specification\\" + text + ".pdf");//MessageBox.Show(text);}
4、给窗体添加Load事件
private void WinApp_Load(object sender, EventArgs e)
{//添加文件菜单ToolStripMenuItem subItem;subItem = AddContextMenu("文件", menuStrip1.Items, null);//添加文件子菜单AddContextMenu("打开", subItem.DropDownItems, new EventHandler(Menu_Clicked));AddContextMenu("关闭", subItem.DropDownItems, new EventHandler(Menu_Clicked));//添加帮助菜单subItem = AddContextMenu("帮助", menuStrip1.Items, null);//添加帮助子菜单string path = Environment.CurrentDirectory + "\\Specification";string[] files = Directory.GetFiles(path, "*.pdf");foreach(string file in files){string filename = Path.GetFileNameWithoutExtension(file);AddContextMenu(filename, subItem.DropDownItems, new EventHandler(Menu_Clicked));}
}
5、运行效果

点击说明书1或2,打开该说明书对应的pdf文件。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
