C # listView, ¿cómo agrego elementos a las columnas 2, 3 y 4, etc.?

Para agregar elementos a la columna 1 en mi control listView ( Winform ) estoy usando listView1.Items.Add , esto funciona bien, pero ¿cómo puedo agregar elementos a las columnas 2 y 3, etc.?

Hay varias maneras de hacerlo, pero aquí hay una solución (para 4 columnas).

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

Y una forma más detallada es aquí:

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

Puede agregar elementos / sub-elementos a ListView como:

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

Pero sospecho que su problema es con el tipo de vista . Configúrelo en el diseñador en Detalles o haga lo siguiente en el código:

 listView1.View = View.Details; 
  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); } 

Aquí está la documentación msdn sobre el objeto listview y el objeto listviewItem.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

Recomiendo encarecidamente que al menos se tome el tiempo de leer la documentación de cualquier objeto que utilice desde .NET Framework. Si bien la documentación puede ser bastante pobre en algunos momentos, sigue siendo invaluable, especialmente cuando te encuentras en situaciones como esta.

Pero como dijo James Atkinson, es simplemente una cuestión de agregar subtemas a un artículo de la lista como sigue:

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

Para su problema use así:

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

Una línea que hice y funciona:

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

Use ListViewSubItem – Ver: MSDN