Question

J'ai un tableau d'objets que je suis en train d'ajouter à la collection d'un contrôle de zone de liste déroulante Eléments en utilisant la méthode AddRange. La méthode prend un object[] mais quand je passe le nom du tableau qui a été intialized avec certaines valeurs, il se plaint:

  

Le match de la meilleure méthode surchargée pour System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[]) a des arguments non valides.

La classe définissant les objets dans mon tableau est très simple:

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 }
};

est où je tente d'appeler AddRange:

combobox1.Items.AddRange(actions);

et c'est la ligne qu'il se plaint de - est-il une étape que je me manque de pouvoir le faire? il fonctionne très bien quand je suis juste l'ajout d'un simple, string[]

Était-ce utile?

La solution

Je l'ai essayé dans un projet .NET C # test ci-dessous et il fonctionne très bien.  L'exemple de code se présente comme suit:

 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;
        }
    }

Vous devez nous dire où vous avez déclaré objet les actions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top