扩展类的属性

本文关键字:属性 扩展 | 更新日期: 2023-09-27 18:18:34

我正在绘制我的自定义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设计器中使用此枚举类型选择?

扩展类的属性

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

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