используя поле со списком формы выигрыша. Метод Items.AddRange
Вопрос
У меня есть массив объектов, которые я пытаюсь добавить в коллекцию Items элемента управления полем со списком, используя метод AddRange.Метод принимает 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[]
Решение
Я попробовал это в тестовом проекте .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;
}
}
Поэтому вам нужно сообщить нам, где вы объявили объект действий.