过滤用户控件

时间:2018-02-16 18:50:44

标签: c# .net winforms user-controls windows-forms-designer

我在用户控件中添加了以下属性

private Control _associatedControl = new Control();
[Description("Sets Asociated Control"),
 Category("EzData"),
 DefaultValue(""),
 Browsable(true)]
public Control AssociatedControl
{
    get => _associatedControl;
    set
    {
        _associatedControl = value;
    }
}

在设计时,控件列出父窗体中的所有控件。 我的问题如何使列表仅包含某些域中的控件(我设计的其他用户控件)。

1 个答案:

答案 0 :(得分:0)

设计师根据属性的类型填充列表。例如,如果属性类型为Button,则列表将仅包含按钮控件。

您可以为控件使用基类型(或接口),然后使用相同的类型声明属性。这样,设计器将仅显示列表中具有该类型(或接口)的对象。

例如,声明属性:

public MyBaseControl AssociatedControl { get; set; }

然后,设计人员将列出从MyBaseControl派生的所有控件实例。