0

Visual Studio 2012 Express を使用します。設計時にプロパティ ウィンドウから設定できるプロパティをさらに持つ UserControl があります。UserControl の名前は「Drum」です。1 つのプロパティは IsSlaveOf という名前で、次のように定義されています。

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

ご覧のとおり、このプロパティは「Drum」のインスタンスの参照に設定できます。私のプロジェクトには、UserControl "Drum" のインスタンスがいくつかあります。設計時のプロパティ ウィンドウで、プロジェクトに存在する他のインスタンスの 1 つをドロップダウン リストから選択できます。ここまでは順調ですね。

「Drum」には、IsMasterOf という別のプロパティが含まれており、次のように定義されています。

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

このプロパティは配列であることに注意してください。つまり、プロパティ ウィンドウでより多くのインスタンスを選択できるようにする必要があります。問題は、プロパティ ウィンドウに "Drum Collection Editor" が表示され、"Drum" の既存のインスタンスを選択することができず、新しいインスタンスを作成することしかできないことです。既存のインスタンスの名前を入力しようとすると、このコンポーネントが既に存在するというメッセージが表示されます。これまでのところ、メイン フォームの Designer.cs ファイルでプロパティを手動で設定することで問題を解決してきましたが、これは明らかに正しい方法ではありません。

プロパティ ウィンドウから既存のインスタンスを選択できるようにするには、どうすればこのプロパティを作成できますか?

どんな助けでも大歓迎です!

4

0 に答える 0