WinForms /.如何将事件处理程序附加到事件



如何获得事件处理程序附加到事件?

伪代码,例如:

public static EventHandler GetChangeUICuesEventHandler(Control SomeControl)
{
   EventHandler changeUICuesEventHandler = SomeControl.ChangeUICues;
   return changeUICuesEventHandler
}

示例用法(伪代码):

Control control = GetControlByName(Console.ReadLine());
button1.ChangeUICues += GetChangeUICuesEventHandler(control);

我提供以下作为替代路径,而不是直接答案…

您是否可以用稍微不同的方式处理这个问题,也许可以确保您的控件已经附加了事件处理程序,在本例中是参数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;

相关内容

  • 没有找到相关文章

最新更新