使用通用的EventHandler<>事件在设计器中不可见

4

我刚刚注意到,如果我使用通用的事件处理程序向我的用户控件添加事件,则在将用户控件添加到表单中时,在设计器中不会显示该事件。

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

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


指定你正在使用的演示框架可能会有所帮助(Winforms、WPF、ASP.NET等)。 - luksan
@luksan,你是对的,标签已更新。 - Benjol
1个回答

8

Windows Forms设计器对泛型类型的支持有限。如果避免使用EventHandler<T>的泛型类型参数,则可以正常工作:

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

非常狡猾!谢谢。 - Benjol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接