我可以在 C# 中延迟绑定到事件处理程序吗?
我正在动态创建对象并将它们插入到 html 表中,这些对象是标签或链接按钮,如果它们是链接按钮,我需要为单击事件订阅事件处理程序,但我正在努力寻找一种方法来实际添加处理程序。 到目前为止的代码是:
WebControl myControl;
if _createLabel)
{
myControl = new Label();
}
else
{
myControl = new LinkButton();
}
myControl.ID = "someID";
myControl.GetType().InvokeMember("Text", BindingFlags.SetProperty, null, myControl, new object[] { "some text" });
if (!_createLabel)
{
// somehow do myControl.Click += myControlHandler; here
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以简单地执行以下操作:
Control.Event += new EventHandlerType(this.controlClick);
You can simply do:
Control.Event += new EventHandlerType(this.controlClick);
这显示将控件上的事件(按名称)绑定到当前实例上的方法(按名称):
This shows binding an event on a control (by name) to a method on the current instance (by name):
类似的东西会起作用。
myControl。GetType()。GetEvent("Click")。AddEventHandler(myControl, myControlHandler);
Something like that will work.
myControl.GetType().GetEvent("Click").AddEventHandler(myControl, myControlHandler);
以下将起作用:
The following will work: