2009-08-22 17 views
2

AddRangeメソッドを使用してコンボボックスコントロールのItemsコレクションに追加しようとしているオブジェクトの配列があります。この方法は、object[]かかりますが、私はそれにいくつかの値でintializedされているアレイの名前を渡すとき、それは文句:winフォームのコンボボックスを使用Items.AddRangeメソッド

System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])ための最良のオーバーロードされたメソッドの試合は、いくつかの無効な引数を持っています。

私の配列内のオブジェクトを定義するクラスは非常に単純です:私はAddRangeを呼び出すしようどこ

public class Action 
{ 
    public string name; 
    public int value; 
    public override string ToString() 
    { 
     return name; 
    } 
} 

and my array is declared such: 

    public Action[] actions = new Action[] { 
    new Action() { name = "foo", value = 1 }, 
    new Action() { name = "bar", value = 2 }, 
    new Action() { name = "foobar", value = 3 } 
}; 

が、これは次のとおりです。

combobox1.Items.AddRange(actions); 

とそれはそれは不満だラインです - 私が行方不明になっているいくつかのステップがありますか?私はちょうど単純に追加しているときにうまく動作しますstring[]

答えて

6

私は.NETのC#テストプロジェクトで、&のようにうまく動作しました。 サンプルコードは以下の通りです:

public partial class Form1 : Form 
    { 
     public Action[] actions = new Action[] 
      { 
new Action() { name = "foo", value = 1 }, 
new Action() { name = "bar", value = 2 }, 
new Action() { name = "foobar", value = 3 } 
      }; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      comboBox1.Items.AddRange(actions); 
     } 

    } 

    public class Action 
    { 
     public string name; 
     public int value; 
     public override string ToString() 
     { 
      return name; 
     } 
    } 

だから、あなたはアクションオブジェクトを宣言しているところを教えする必要があります。

+0

ugh、そうです - 何かミスタイプして間違った場所で説明を探していました - ありがとうGanesh – kinakuta

関連する問題