используя поле со списком формы выигрыша. Метод Items.AddRange

StackOverflow https://stackoverflow.com/questions/1315222

Вопрос

У меня есть массив объектов, которые я пытаюсь добавить в коллекцию 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;
        }
    }

Поэтому вам нужно сообщить нам, где вы объявили объект действий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top