[英]Can't access checked property of menu item created with code outside the designer
[英]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.