Pour ajouter des éléments à la colonne 1 de mon contrôle listView
(Winform
) j'utilise listView1.Items.Add
, cela fonctionne bien, mais comment puis-je ajouter des éléments aux colonnes 2 et 3, etc.?
Il y a plusieurs façons de le faire, mais voici une solution (pour 4 colonnes).
string[] row1 = { "s1", "s2", "s3" };
listView1.Items.Add("Column1Text").SubItems.AddRange(row1);
Et une manière plus verbeuse est ici:
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});
Vous pouvez ajouter items / sous-items à la liste comme:
ListViewItem item = new ListViewItem(new []{"1","2","3","4"});
listView1.Items.Add(item);
Mais je soupçonne que votre problème est avec le Type de vue . Définissez-le dans le concepteur sur Détails ou procédez comme suit dans le 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);
}
Voici la documentation msdn sur les objets listview et 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
Je vous recommande vivement de prendre au moins le temps de parcourir la documentation sur tous les objets que vous utilisez à partir du framework .net. Bien que la documentation puisse parfois être assez médiocre, elle reste néanmoins précieuse, en particulier lorsque vous vous trouvez dans une situation de ce type.
Mais comme James Atkinson l’a dit, il s’agit simplement d’ajouter des sous-éléments à un élément listview comme ceci:
ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");
Pour votre problème, utilisez comme ceci:
ListViewItem row = new ListViewItem();
row.SubItems.Add(value.ToString());
listview1.Items.Add(row);
Une ligne que j'ai faite et ça marche:
listView1.Items.Add(new ListViewItem { ImageIndex = 0, Text = randomArray["maintext"], SubItems = { randomArray["columntext2"], randomArray["columntext3"] } });