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文件。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大浪淘沙胡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值