web-dev-qa-db-fra.com

C # listView, comment puis-je ajouter des éléments aux colonnes 2, 3 et 4, etc.?

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.?

103
Steve

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

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

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");
7
CalvinR

Pour votre problème, utilisez comme ceci:

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

Une ligne que j'ai faite et ça marche:

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