如何将事件处理程序附加到事件?
伪代码,例如:
public static EventHandler GetChangeUICuesEventHandler(Control SomeControl)
{
EventHandler changeUICuesEventHandler = SomeControl.ChangeUICues;
return changeUICuesEventHandler
}
示例用法(伪代码):
Control control = GetControlByName(Console.ReadLine());
button1.ChangeUICues += GetChangeUICuesEventHandler(control);
答案 0 :(得分:1)
我提供以下作为替代路径而不是直接回答......所以这里......
您是否可以通过确保已附加事件处理程序的控件(在本例中为参数someControl
)来实现定义附加处理程序的接口,从而稍微改变一下。例如:
public interface ChangUICuesHandler
{
void OnChangeUICues(object sender, EventArgs e);
}
然后你可以像这样使用它:
Control control = GetControlByName(Console.ReadLine());
if (!(control is ChangeUICuesHandler))
{
throw new Exception("Input Control does not implement the interface");
}
var handlerControl = control as ChangeUICuesHandler;
button.ChangeUICues += handler.OnChangeUICues;