使用通用EventHandler <>的事件在Designer中不可见

Ben*_*jol 4 events designer visual-studio winforms

我刚才注意到,如果我使用通用事件处理程序向我的UserControl添加一个事件,那么当我将用户控件添加到表单时,该事件在设计器中是不可见的.

public event EventHandler<TEventArgs<int>> EventNotVisibleInDesigner;
public event EventHandler EventVisibleInDesigner;
Run Code Online (Sandbox Code Playgroud)

不是特别令人担忧,但这是设计/正常,还是我做错了什么?

Han*_*ant 7

Windows窗体设计器对泛型类型的支持有限.当你避免使用泛型类型参数时它会正常工作EventHandler<T>:

    public class TEventArgs<T> : EventArgs { }
    public class MyEventArgs : TEventArgs<int> { }
    public event EventHandler<MyEventArgs> EventNowAlsoVisibleInDesigner;
Run Code Online (Sandbox Code Playgroud)