扩展类的属性

时间:2014-08-18 12:40:00

标签: c# winforms extension-methods

我正在绘制自定义TabControl。现在我想通过枚举指定图标。通常,在创建自定义UserControl时,通过定义具有某些ComponentModel属性的属性,可以在VS设计器中编辑此属性。我目前的代码:

public class TabPageExtensions
{
    [TypeConverterAttribute(typeof(IconType))]
    [Editor(typeof(IconType), typeof(IconType))]
    [Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
    public IconType Icon
    {
        get;
        set;
    }
}

public enum IconType
{
    None, Home, Settings, Bars, Manual, Information, Graph
}

但是扩展属性并没有出现在设计师中。有没有办法在具有扩展属性的VS设计器中使用此枚举类型选择?

1 个答案:

答案 0 :(得分:2)

您可以继承扩展和添加属性所需的Control,如果您不想继承它,则需要实现IExtenderprovider接口,该接口也继承自Component类在设计时扩展对象的属性。

Tooltip类实现了这个接口,这就是为什么你看到ToolTip on ToolTip1属性出现在属性选项卡中,即使你没有这样的属性。