Array作为Visual Studio中属性窗口中的属性

时间:2013-06-19 08:36:17

标签: c# visual-studio-2012 userform

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

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

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

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

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

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

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

任何帮助表示赞赏!

0 个答案:

没有答案
相关问题