繁体   English   中英

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

[英]Dynamically add handler for a button click event

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

例如:

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>;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM