实现功能:
当一个平台支持多个产品时,有多个产品说明书,要在帮助菜单子菜单显示说明书名称,点击名称打开对应的说明书。
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文件。