à l'aide d'une zone de liste déroulante forme gagnant méthode Items.AddRange
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[]
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.