为按钮单击事件动态添加处理程序
本文关键字:添加 处理 程序 动态 事件 按钮 单击 | 更新日期: 2023-09-27 17:57:32
如何为每个生成的按钮的点击事件添加一个处理程序?
例如:
Button btn = new Button();
btn.ID = "delete_" + i.ToString();
btn.Click += degerate
{
callFunction(i);
};
每当我尝试按下按钮时,它只会影响对上次插入的单击事件调用函数。有什么修复建议吗?
如果每次添加点击处理程序时都会执行上面的代码,那么每次都会创建一个全新的按钮对象。因为它是一个全新的对象,所以它对附加在旧按钮上的单击处理程序一无所知。
在用于声明按钮的循环中,使用以下片段:
button.Click += new EventHandler(<funcName>);
不要忘记"funcName"必须与EventHandle委托匹配。
然后,所有按钮将共享相同的事件代码,但每个事件都绑定到自己的按钮。
您可以访问每个按钮的所有信息,方法是将发件人转换为您正在使用的特定对象类型,例如:
Button btn = (Button)sender;
btn.ID = <new value>;