1

我有一个通用EventArgs类定义为:

public class GenericEventArgs<T> : EventArgs
{
    public GenericEventArgs(T value)
    {
        Data = value;
    }

    public T Data { get; private set; }
}

如果我将一个eventof 类型添加EventHandler<T>到我的UserControl中,它只会出现在设计器中,如果我继承我的泛型EventArgs类型。

// this event will not appear in Designer
public event EventHandler<GenericEventArgs<String>> Event1;

// this event appears in Designer as expected
public event EventHandler<StringEventArgs> Event2;

其中StringEventArgs定义为:

public class StringEventArgs : GenericEventArgs<String>
{
    public StringEventArgs(String value)
        : base(value)
    {
    }
}

我尝试将[Browsable(true)]属性添加到事件中,并将EventArgs<T>类标记为Serializable没有成功。

什么可能导致这种情况,是否有可用的解决方法(子类化除外)?

我正在使用 VS2010 和 .NET 4.0。

4

0 回答 0