创建UserControl实例的属性(不是新的)

本文关键字:属性 UserControl 实例 创建 | 更新日期: 2023-09-27 18:04:36

我有一个usercontrol,我想要一个属性,可以列出在Windows窗体中相同的usercontrols的所有其他实例。

。我有一个简单的用户控件(侧边栏按钮)。我在UserForm中拖拽了它的2个实例。现在我想要一个属性(在usercontrol本身),可以列出这两个。

我写了这个属性。然而,当在Visual Studio的属性浏览器窗口中使用时,它允许我添加新的实例的sidebarButton控件。

private List<SidebarButton> _sidebarButtons;
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always), Category("Roshan")]
public List<SidebarButton> SidebarButtons
{
    get { return this._sidebarButtons; }
    set { this._sidebarButtons = value; }
}

如何在此属性中添加我在表单中拖放的2个实例。我知道物业需要修改,但没有明确的方向。请帮帮我。

创建UserControl实例的属性(不是新的)

这样做的一种方法是,在将用户控件添加到表单中时,用户控件通知该类型的所有其他用户控件它现在存在。您的用户控件可以实现如下接口:

public interface INotifiable
{
    public void AddToList(INotifiable newButton);
}

当用户控件被添加到表单中时,您遍历所有控件并检查它们是否实现了此接口。如果是,则调用AddToList方法并将新添加的控件传递给它。