Event using generic EventHandler<> not visible

2019-02-24 07:50发布

问题:

I've just noticed that if I add an event using a generic eventhandler to my UserControl, the event is not visible in the designer when I add the user control to a form.

public event EventHandler<TEventArgs<int>> EventNotVisibleInDesigner;
public event EventHandler EventVisibleInDesigner;

Not particularly worrisome, but is this by-design/normal, or am I doing something wrong?

回答1:

The Windows Forms designer has limited support for generic types. It will work okay when you avoid the generic type argument for EventHandler<T>:

    public class TEventArgs<T> : EventArgs { }
    public class MyEventArgs : TEventArgs<int> { }
    public event EventHandler<MyEventArgs> EventNowAlsoVisibleInDesigner;