无法将类型’System.EventHandler’隐式转换为’System.EventHandler ‘以完成情节提要
我已经阅读了一些关于此的线索,但我仍然不知道如何在我的情况下解决它。 我来自Java,而且大多是C#的新手
我想在动画结束时附加监听器:
myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted);
和:
private void onMyStoryBoardCompleted(object sender, EventArgs e) { }
我在标题中得到错误。 我试过了:
myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted);
但后来我得到:
no overload for 'onMyStoryBoardCompleted' matches delegate 'System.EventHandler'
所以似乎签名与EventHandler 不兼容,我找不到如何使它兼容,我也不知道这种方法是否正确。
我读
了解C#中的事件和事件处理程序
从System.EventHandler到System.EventHandler 的C#动态模板隐式转换错误
在Windows 8应用程序中为DispatcherTimer的Tick事件定义事件处理程序
但仍然没有找到这种情况的解决方案。
提前致谢。
尝试:
private void onMyStoryBoardCompleted(object sender, object e) { }
并使用通用EventHandler
订阅:
myStoryBoard.Completed += new EventHandler
当然,这违反了.NET Framework约定,即事件处理程序的第二个参数应该是EventArgs
(或其派生类)的实例。 我假设您正在运行另一个框架,例如Windows 8 Metro,其Timeline
类使用EventHandler
签名定义Completed
事件。