0

使用 Visual Studio 2012 Express。我有一个带有更多属性的 UserControl,这些属性可以在设计时从属性窗口中设置。UserControl 的名称是“Drum”。一个属性名为 IsSlaveOf,定义如下:

[Category("Custom")]
public Drum IsSlaveOf
{
    get
    {
        return _isSlaveOf;
    }
    set
    {
        _isSlaveOf = value;
    }
}

如您所见,此属性可以设置为“鼓”实例的引用。在我的项目中有几个用户控件“鼓”的实例。在设计时的属性窗口中,我可以从下拉列表中选择我的项目中存在的其他实例之一。到目前为止,一切都很好。

“Drum”包含另一个名为 IsMasterOf 的属性,定义如下:

[Category("Custom")]
public Drum[] IsMasterOf
{
    get
    {
        return _isMasterOf;
    }
    set
    {
        _isMasterOf= value;
    }
}

请注意,此属性是一个数组,这意味着您应该可以在属性窗口中选择更多实例。问题是在属性窗口中您现在将看到一个“鼓集合编辑器”,其中无法选择“鼓”的现有实例,只能创建新实例。如果我尝试输入现有实例的名称,我会收到一条消息,告诉我该组件已经存在。到目前为止,我已经通过在我的主窗体的 Designer.cs 文件中手动设置属性来解决这个问题,但这显然不是正确的方法。

如何创建此属性,以便可以从属性窗口中选择现有实例?

任何帮助表示赞赏!

4

0 回答 0