【发布时间】:2018-11-16 14:55:44
【问题描述】:
我正在尝试将事件绑定到在 for 循环中创建的动态创建的菜单项的单击事件。当我单击菜单项时,代码会执行,但它是循环中的最后一个值“x”。这是代码:
for(int x = 1; x < 3; x++)
{
MenuItem mi = new MenuItem("Get");
ContextMenu cm = new ContextMenu();
mi.Click += (s, e) => { GetClick(x); };
cm.MenuItems.Add(mi);
Button btn = this.Controls.Find("btnGet" + x.ToString(), true).FirstOrDefault() as Button;
btn.ContextMenu = cm;
}
private void GetClick(int intGetItem)
{
//Previous code...
GetItem(intGetItem);
}
问题是当我调试 GetClick 方法时,无论我使用哪个按钮,intGetItem 始终等于 3。任何帮助表示赞赏!
【问题讨论】: