C # listView, wie füge ich den Spalten 2, 3 und 4 Elemente hinzu?

Um Elemente zu Spalte 1 in meinem listView Steuerelement ( Winform ) listView1.Items.Add , verwende ich listView1.Items.Add , das funktioniert gut, aber wie füge ich Elemente zu Spalten 2 und 3 usw. hinzu?

   

Es gibt mehrere Möglichkeiten dies zu tun, aber hier ist eine Lösung (für 4 Spalten).

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

Und eine ausführlichere Art ist hier:

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

Sie können Elemente / Unterelemente zum ListView hinzufügen:

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

Aber ich vermute, dass dein Problem mit dem Ansichtstyp ist . Setzen Sie es im Designer auf Details oder machen Sie Folgendes im Code:

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

Hier ist die msdn-Dokumentation zum listview-Objekt und zum listviewItem-Objekt.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

Ich würde sehr empfehlen, dass Sie mindestens die Zeit nehmen, die Dokumentation über alle Objekte, die Sie aus dem .NET-Framework verwenden, zu überfliegen. Obwohl die Dokumentation manchmal ziemlich schlecht sein kann, ist sie immer noch von unschätzbarem Wert, besonders wenn Sie auf Situationen wie diese stoßen.

Aber wie James Atkinson sagte, es geht einfach darum, einem listviewitem Unterelemente hinzuzufügen:

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

Für dein Problem verwende es so:

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

Eine Zeile, die ich gemacht habe und es funktioniert:

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

Verwenden Sie ListViewSubItem – Siehe: MSDN