带有附加代码的动态创建的菜单项?

时间:2016-05-02 20:25:12

标签: c# winforms contextmenustrip

我正在从INI文件中读取2个值:部分名称,&名为" Path"

的键的值

[游戏名称]

路径= C:\游戏\的Game.exe

我想要做的是创建一个上下文菜单项,其标题是Section" Game Name"并让它从" Path"的价值中启动应用程序。键。在过去,我对动态创建的控件没有太多帮助,所以我想知道是否有一种简单的方法来创建它,并为它分配一行代码来启动应用程序。

是否有可能,还是有更简单的方法来实现它?

foreach(SectionHeader中的字符串SecHead)                     {                         string [] Entry = myINI.GetEntryNames(SecHead);

                    if (Entry != null)
                    {
                        foreach (string EntName in Entry)
                        {
                            ArrayList row = new ArrayList();
                            row.Add(SecHead);
                            row.Add(myINI.GetEntryValue(SecHead, EntName));
                            DGV.Rows.Add(row.ToArray());

                            string filePath = Convert.ToString(myINI.GetEntryValue(SecHead, EntName));

                            //Create ContextMenu Entry from Data Above
                            Icon newIcon = Icon.ExtractAssociatedIcon(filePath);

                        }
                    }
                }

1 个答案:

答案 0 :(得分:0)

我假设您知道如何读取INI值并且它们位于String个变量中。我们还假设您在提供鼠标坐标的事件处理程序中执行此操作,例如MouseUp事件:

var section = "section";
var gameExe = "c:\\somepath\\mygame.exe";
var menu = new ContextMenu();
var item = new MenuItem(section);
item.Click += (s, args) => { Process.Start(gameExe); };
menu.Items.Add(item);
menu.Show(this, new Point(e.X, e.Y));

没有现场测试,但这应该给你一般的想法。