我在WinForms C#中。我正在循环中将点击委托给一个函数。
foreach (Class.Item item in _searchName)
{
indexGroup++;
if (indexGroup <= MAX_SEARCHES)
{
myCntrl = (GSSearcher)panelSearch.Controls["gsSearcher" + indexGroup.ToString()];
myCntrl.Visible = true;
myCntrl.SetId = item.Id;
myCntrl.SetText1 = item.Name;
myCntrl.SetText2 = item.Description;
string[] onlyDate = item.DateCreate.ToString().Split(' ');
myCntrl.SetText3 = onlyDate[0].ToString();
//HAY QUE MIRAR ESTO.
myCntrl.MyClick += delegate { ClickIdToLoad(item.Id); };
}
}
这是在搜索者内部,每次有人搜索循环时都会再次分配该功能。因此,当我在函数ClickIdToLoad中放置一个断点时,这会在很多时候停止。
,我需要“删除”功能或类似的东西答案 0 :(得分:0)
感谢Chrisk,我使用了这个解决方案:
是否可以将ìtem.id保存在您的控件的标记中?看起来这是一个自定义控件,因此您可以在事件处理程序中查询Tag并只调用ClickIdToLoad((int)item.Id)。这样你就不需要保留一堆引用了。 - ChrisK 1小时前
但我并非“未经授权”。
谢谢ChrisK !!