web-dev-qa-db-ja.com

C#listView、列2、3、4などにアイテムを追加するにはどうすればよいですか?

listViewコントロールの列1にアイテムを追加するには(WinformlistView1.Items.Addを使用していますが、これは正常に機能しますが、列2や列3などにアイテムを追加するにはどうすればよいですか?

103
Steve

それを行うにはいくつかの方法がありますが、1つのソリューションがあります(4列用)。

string[] row1 = { "s1", "s2", "s3" };
listView1.Items.Add("Column1Text").SubItems.AddRange(row1);

より詳細な方法はこちらです:

ListViewItem item1 = new ListViewItem("Something");
item1.SubItems.Add("SubItem1a");
item1.SubItems.Add("SubItem1b");
item1.SubItems.Add("SubItem1c");

ListViewItem item2 = new ListViewItem("Something2");
item2.SubItems.Add("SubItem2a");
item2.SubItems.Add("SubItem2b");
item2.SubItems.Add("SubItem2c");

ListViewItem item3 = new ListViewItem("Something3");
item3.SubItems.Add("SubItem3a");
item3.SubItems.Add("SubItem3b");
item3.SubItems.Add("SubItem3c");

ListView1.Items.AddRange(new ListViewItem[] {item1,item2,item3});
128
Inisheer

items / sub-items をListViewに追加できます:

ListViewItem item = new ListViewItem(new []{"1","2","3","4"});
listView1.Items.Add(item);

しかし、あなたの問題は View Type にあると思う。デザイナで[詳細]に設定するか、コードで次の操作を行います。

listView1.View = View.Details;
63
bruno conde
 private void MainTimesheetForm_Load(object sender, EventArgs e)
        {
            ListViewItem newList = new ListViewItem("1");
            newList.SubItems.Add("2");
            newList.SubItems.Add(DateTime.Now.ToLongTimeString());
            newList.SubItems.Add("3");
            newList.SubItems.Add("4");
            newList.SubItems.Add("5");
            newList.SubItems.Add("6");
            listViewTimeSheet.Items.Add(newList);

        }
7
kehinde

以下は、listviewオブジェクトとlistviewItemオブジェクトに関するmsdnドキュメントです。
http://msdn.Microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.Microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

少なくとも、.netフレームワークから使用するオブジェクトに関するドキュメントをざっと読むことを強くお勧めします。ドキュメンテーションは時々非常に貧弱になることがありますが、特にこのような状況に遭遇したときは、それは非常に貴重です。

しかし、ジェームズ・アトキンソンが言ったように、それはリストビューアイテムにサブアイテムを追加するだけの問題です。

ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");
7
CalvinR

あなたの問題のために次のように使用します:

ListViewItem row = new ListViewItem(); 
row.SubItems.Add(value.ToString()); 
listview1.Items.Add(row);
4
OneM

私が作った1つの行とそれは動作します:

listView1.Items.Add(new ListViewItem { ImageIndex = 0, Text = randomArray["maintext"], SubItems = { randomArray["columntext2"], randomArray["columntext3"] } });
0
David Rodrigues