我有一个对象数组,我正在尝试使用AddRange方法添加到组合框控件的Items集合中。该方法需要object[]
,但是当我传递了已经使用某些值初始化的数组的名称时,它会抱怨:
System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])
的最佳重载方法匹配有一些无效的参数。
定义数组中对象的类非常简单:
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 }
};
这是我尝试拨打AddRange
的地方:
combobox1.Items.AddRange(actions);
这就是它所抱怨的那条线 - 是否有一些步骤我不知道能够做到这一点?当我只是添加一个简单的string[]
答案 0 :(得分: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;
}
}
所以你需要告诉我们你在哪里宣布了行动对象。