【发布时间】:2010-11-22 22:01:35
【问题描述】:
我正在创建一个名为PanelsList 的类,它基本上是一个顶部没有标题的TabControl,因此只能以编程方式更改页面。每个“选项卡”都将是一个名为PanelsListItem 的类的实例,该类派生自Panel。我还创建了一个实现ICollection 和ICollection<PanelsListItem> 的类PanelsListItemCollection。所以我在我的PanelsList 中添加了以下内容:
private PanelsListItemCollection _Items;
public PanelsListItemCollection Items
{
get { return _Items; }
set { SetItems(value); }
}
private void SetItems(PanelsListItemCollection value)
{
if (_Items != value)
{
if (_Items != null) _Items.PanelsList= null;
_Items = value;
if (_Items != null) _Items.PanelsList= this;
}
}
我假设在构建并添加PanelsList 到我的表单后,我将能够在设计时编辑PanelsListItemCollection。但是,当我在 Proeprties 编辑器中单击属性 Items 上的“...”按钮时,Object Collection Editor 打开,但 Add em> 和 Remove 按钮被禁用。
当我将属性List<Control> Stuff { get; set; } 添加到我的PanelsList 时,我可以在设计时从Stuff 添加和删除控件。我想知道我是否需要实现IList而不是ICollection?
编辑:我刚刚也尝试实现IList<PanelsListItem>,但没有解决。
【问题讨论】:
标签: c# .net visual-studio winforms user-controls