To add items to column 1 in my listView control (Winform) I'm using listView1.Items.Add, this works fine but how do I add items to columns 2 and 3 etc?
- 13+1 : Good question. this part of ListView control is very confusing and unintuitive. Sometimes I really think they hate developers @ MSMehdi LAMRANI– Mehdi LAMRANI2012-07-17 18:50:24 +00:00Commented Jul 17, 2012 at 18:50
- 1@Mika: It isn't easy to abstract away the complexity of robust GUI design from the user.Christopher Berman– Christopher Berman2013-01-09 21:50:28 +00:00Commented Jan 9, 2013 at 21:50
- 2(That sounded way less patronizing in my head; sorry!)Christopher Berman– Christopher Berman2013-01-09 23:07:38 +00:00Commented Jan 9, 2013 at 23:07
- Add to subiiemsRamankingdom– Ramankingdom2017-07-31 03:16:40 +00:00Commented Jul 31, 2017 at 3:16
6 Answers
There are several ways to do it, but here is one solution (for 4 columns).
string[] row1 = { "s1", "s2", "s3" }; listView1.Items.Add("Column1Text").SubItems.AddRange(row1); And a more verbose way is here:
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}); 2 Comments
$lvi = New-Object Windows.Forms.ListViewItem($rowContentArr[0]); $lvi.SubItems.Add($rowContentArr[1]); $lvi.SubItems.Add("FALSE"); $lvwBtnRenameGroupsOutput.Items.Add($lvi);You can add items / sub-items to the ListView like:
ListViewItem item = new ListViewItem(new []{"1","2","3","4"}); listView1.Items.Add(item); But I suspect your problem is with the View Type. Set it in the designer to Details or do the following in code:
listView1.View = View.Details; 2 Comments
Here is the msdn documentation on the listview object and the listviewItem object.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx
I would highly recommend that you at least take the time to skim the documentation on any objects you use from the .net framework. While the documentation can be pretty poor at some times it is still invaluable especially when you run into situations like this.
But as James Atkinson said it's simply a matter of adding subitems to a listviewitem like so:
ListViewItem i = new ListViewItem("column1"); i.SubItems.Add("column2"); i.SubItems.Add("column3"); Comments
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); }