簡體   English   中英

動態創建的帶有附加代碼的菜單項?

[英]Dynamically Created Menu Item with attached code?

我正在從INI文件中讀取2個值:部分名稱和名為“路徑”的鍵的值

[游戲名稱]

路徑= C:\\ Game \\ Game.exe

我想做的是創建一個上下文菜單項,標題為“游戲名稱”部分,並使其從“路徑”鍵的值啟動應用程序。 我過去對動態創建的控件工作不多,所以我想知道是否有一種簡單的方法可以創建它,並為其分配一行代碼以啟動應用程序。

有可能嗎,或者有更簡單的方法嗎?

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);

                        }
                    }
                }

我假設您知道如何讀取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));

尚未進行實時測試,但這應該可以為您提供總體思路。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM