2012-03-28 7 views
0

私はコンボボックスを持つユーザーコントロールを持っている、と私はプロパティとしてそのテキストを編集することができ、私は次のコードを持っている:ユーザーコントロールのComboBox.ObjectCollectionプロパティ?

public ComboBox.ObjectCollection _OptionList { 
    get { 
     return OptionChoice.Items; 
    } 
    set { 
     for (int i = 0; i < value.Count; i++) 
     { 
      OptionChoice.Items.Add(value[i]); 
     } 
    } 
} 

のプロパティとしてコンボボックスのこのプロパティにアクセスすることが可能であるがユーザーコントロール?もしそうなら、私は何が間違っているのですか?ビルドして実行しますが、VSのプロパティをクリックして項目を追加すると、新しい項目はSystem.Objectであり、変更することはできません。

+2

を試してみてください、私は確かに答えを持っていませんが、代わりに 'OptionChoice.Items'の' ReturnValue'を返すようにゲッターするためのもののように見えます。多分それは予期せぬ結果を引き起こしています... –

+0

@GrantWinney私は最初にこのコードを編集した後に作業をしませんでしたが、リスト ReturnValueを使用してデータを試してみましたが、私の考えを変えましたが、バック。申し訳ありませんが私はそれを削除する必要が...私はちょうどそれを取り出した – Oztaco

答えて

2

UserControlの同じItemsコレクション - UserControlの特定のコンボボックスのパススルーとして機能します。

だから、あなたはそれがあることを期待し、リストのどのタイプデザイナーを教えて:

[Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", 
    typeof(UITypeEditor))] 
public ComboBox.ObjectCollection Items 
{ 
    get{ return this.comboBox1.Items; } 
} 

あなたが今までコレクションプロパティのセッターを望んでいません。 (まあ、ほとんど決して)。

+0

しかし、私はコンボボックスの項目を変更することができる必要があります、これは私にそれを変更させますか? – Oztaco

+0

はい。これは、ほぼ完全に同じコードなので、元のComboBoxと同じ*正確に動作します。試してみる。 –

0
public System.Windows.Forms.ComboBox.ObjectCollection Item 
    { 
     set { 
      for (byte i = 0; i < value.Count; i++) 
       comboBox1.Items.Add(value[i].ToString()); 
     } 
     get { return comboBox1.Items; } 
    } 

この

+3

コードで質問に答えるときには、コードが何をしているのか、問題を解決する理由を説明してください。 –

関連する問題