钩住标签的自定义函数';s单击事件
本文关键字:单击 事件 标签 自定义函数 | 更新日期: 2023-09-27 18:29:53
如何挂接自定义函数,以便在单击标签时运行相同的函数并传递参数?
List<int> _list1 = new List<int>(); //1, 2, 3, 4, 5
foreach (var item in _list1)
{
Label lb = new Label { Text = item.ToString() };
lb.Click += //custom function and pass the parameter item
}
private void CustomFunctionOnClick(int s)
{
textBox1.Text = s.ToString();
}
->我无法用标签的点击事件钩住代理
->反过来,我可以有一个CustomEventArgs类,它将把数据传递给事件(object sender, CustomEventArgs e)
,并且我可以在事件中运行相同的代码。但是点击事件委托没有将CustomEventArgs定义为事件的参数?
那么,这是怎么做到的呢?
List<int> _list1 = new List<int>(); //1, 2, 3, 4, 5
foreach (var item in _list1)
{
// take copy of loop variable to avoid closing over the loop variable
int i = item;
Label lb = new Label { Text = item.ToString() };
lb.Click += (x,y) => CustomFunction(i);
}
void CustomFunction(int item)
{
}
您也可以这样做:
List<int> _list1 = new List<int>(); //1, 2, 3, 4, 5
foreach (var item in _list1)
{
Label lb = new Label { Text = item.ToString() };
lb.Tag = item;
lb.Click += CustomFunctionOnClick;
}
private void CustomFunctionOnClick(object sender, EventArgs e)
{
Label l = (Label)sender;
int item = l.Tag;
}