Frage

Ich habe eine Listview auf meiner Form. Ich mag Sachen, um es hinzuzufügen Durring das Programm ausgeführt wird.

Dies ist der Code, den ich verwende

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

der Parameter muss Zeichenfolge sein und ich versuche .ToString, aber ich bekomme diese:

  

Das Argument '1': Konvertierung von 'Methodengruppe' zu 'string'

War es hilfreich?

Lösung

Sie fehlen die Klammern des Methodenaufruf:

ToString()

Ohne die Klammern ist der Ausdruck eine Methode Gruppe - das heißt, ein Verweis auf eine oder mehr überladenen Methoden.

Andere Tipps

Sie haben vergessen, die Klammern.

Es sollte .ToString() werden

John das ist off topic, aber haben Sie mit dieser Methode betrachtet in einer Klasse aus jedem der Teilelemente aus passieren hinzuzufügen. Also:

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

Auf diese Weise kann in aufgereiht weitergegeben jedes der Elemente in der Arrays zu haben braucht. Der Versuch, Elemente in einer Reihe aufstellen in vielen Arrays oft machen Schnittstellen schwer zu bedienen. Ihre Methode würde so aussehen

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

Ich habe diesen Code gerade gerade geschrieben, so gibt es vielleicht einige Code Bereinigung erforderlich

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top