我在用户控件中添加了以下属性
private Control _associatedControl = new Control();
[Description("Sets Asociated Control"),
Category("EzData"),
DefaultValue(""),
Browsable(true)]
public Control AssociatedControl
{
get => _associatedControl;
set
{
_associatedControl = value;
}
}
在设计时,控件列出父窗体中的所有控件。 我的问题如何使列表仅包含某些域中的控件(我设计的其他用户控件)。
答案 0 :(得分:0)
设计师根据属性的类型填充列表。例如,如果属性类型为Button
,则列表将仅包含按钮控件。
您可以为控件使用基类型(或接口),然后使用相同的类型声明属性。这样,设计器将仅显示列表中具有该类型(或接口)的对象。
例如,声明属性:
public MyBaseControl AssociatedControl { get; set; }
然后,设计人员将列出从MyBaseControl
派生的所有控件实例。