动态添加按钮单击事件的处理程序

时间:2015-06-22 21:32:04

标签: c# events click handler

如何为每个生成的按钮的click事件添加处理程序?

例如:

Button btn = new Button();
btn.ID = "delete_" + i.ToString();

btn.Click += degerate
{
     callFunction(i);
};

每当我尝试按下按钮时,它只会影响为最后插入的点击事件调用该函数。有任何修复建议吗?

2 个答案:

答案 0 :(得分:0)

在用于声明按钮的循环中,使用以下代码段:

button.Click += new EventHandler(<funcName>);

不要忘记“funcName”必须与EventHandle委托匹配。

然后所有按钮将共享相同的事件代码,但每个事件都绑定到它自己的按钮。

您可以通过将发件人作为您正在使用的特定对象类型进行投射来访问每个按钮的所有信息,例如:

Button btn = (Button)sender;
btn.ID = <new value>;

答案 1 :(得分:0)

如果您每次要添加点击处理程序时都执行上述代码,则每次都会创建一个全新的按钮对象。因为它是一个全新的对象,所以它对附加到旧按钮的点击处理程序一无所知。