J'ai une liste de liste sur mon formulaire. Je veux ajouter des choses à ce que le programme est en cours d'exécution.
C'est le code que j'utilise
public void FillList(string[] Name,int[] empty,int[] Population,int[] Max,int[] Check,int size)
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
for (int i = 0; i < size; i++)
{
ListViewItem item = new ListViewItem(Name[i]);
item.SubItems.Add(empty[i].ToString); //error
item.SubItems.Add(Population[i].ToString); //error
item.SubItems.Add(Max[i].ToString); //error
if (Check != 1)
item.SubItems.Add("No");
else
item.SubItems.Add("Yes");
listView1.Items.Add(item);
}
});
}
}
le paramètre doit être une chaîne et j'ai essayé .ToString
, mais je reçois ceci:
Argument '1': impossible de convertir du "groupe de méthodes" à "chaîne"
Vous manquez les parenthèses de la méthode appel:
ToString()
Sans parenthèses, l'expression est un groupe de méthodes - c'est-à-dire une référence à une ou plusieurs méthodes surchargées.
Vous avez oublié les parenthèses.
Il devrait être .ToString()
John Ceci est hors thème, mais avez-vous envisagé avec cette méthode pour réussir une classe composée de chacun des sous-éléments à ajouter. Donc:
class ListItem
{
public string Name {get; set;}
public int Empty {get; set;}
public int Population {get; set;}
public int Max {get; set;}
public bool Checked {get; set;}
}
De cette façon, vous auriez besoin d'avoir chacun des articles dans les tableaux passés en alignés. Essayer d'aligner des articles dans de nombreux tableaux rend souvent des interfaces difficiles à utiliser. Votre méthode ressemblerait à
FillList(IList<ListItem> listItems)
{
if (this.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
foreach (ListItem listItem in listItems)
{
ListViewItem item = new ListViewItem(listItem .Name);
item.SubItems.Add(listItem.Empty.ToString());
item.SubItems.Add(listItem.Population.ToString());
item.SubItems.Add(listItem.Max.ToString());
item.SubItems.Add(listItem.Checked ? "No" : "Yes");
listView1.Items.Add(item);
}
}
}
}
Je viens d'écrire ce code directement dans ce qu'il y a peut-être un certain nettoyage de code requis