32

フォームに listView があります。プログラムの実行中に何かを追加したい。

これは私が使用するコードです

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

パラメータは文字列である必要があり、試してみましたが、次の.ToStringようになります。

引数 '1': 'メソッド グループ' から '文字列' に変換できません

4

3 に答える 3

101

メソッド呼び出しの括弧がありません:

ToString()

括弧がない場合、式はメソッド グループ 、つまり、1 つ以上のオーバーロードされたメソッドへの参照です。

于 2009-04-08T11:56:03.933 に答える
8

括弧を忘れました。

そのはず.ToString()

于 2009-04-08T11:56:34.197 に答える
1

ジョン、これはトピック外ですが、このメソッドを使用して、追加する各サブアイテムで構成されるクラスを渡すことを検討しましたか。そう:

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

そうすれば、渡された配列内の各項目を並べる必要があります。多くの配列に項目を並べようとすると、インターフェイスが使いにくくなることがよくあります。あなたの方法は次のようになります

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

このコードをそのまま書き込んだので、コードのクリーンアップが必要になる可能性があります

于 2009-04-20T07:06:43.530 に答える