C # listView, 2., 3. ve 4. sütunlara vb. Öğeleri nasıl eklerim?


106

listViewKontrolümde 1. sütuna öğe eklemek için ( Winform) kullanıyorum listView1.Items.Add, bu iyi çalışıyor ancak 2. ve 3. sütunlara vb. Öğeleri nasıl ekleyebilirim?


8
+1: Güzel soru. ListView kontrolünün bu kısmı çok kafa karıştırıcı ve sezgisel değildir. Bazen geliştiricilerden gerçekten nefret ettiklerini düşünüyorum @ MS
Mehdi LAMRANI

1
@Mika: Sağlam GUI tasarımının karmaşıklığını kullanıcıdan soyutlamak kolay değil.
Christopher Berman

1
(Bu kafamda daha az kibirli gibi geldi; üzgünüm!)
Christopher Berman

Subiiems'e ekle
Ramankingdom

Yanıtlar:


134

Bunu yapmanın birkaç yolu var, ancak işte bir çözüm (4 sütun için).

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

Ve burada daha ayrıntılı bir yol var:

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

65

ListView'a aşağıdaki gibi öğeler / alt öğeler ekleyebilirsiniz :

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

Ancak sorunun Görünüm Türü ile ilgili olduğundan şüpheleniyorum . Tasarımcıda Ayrıntılar olarak ayarlayın veya kodda aşağıdakileri yapın:

listView1.View = View.Details;

2
"ListView1.FullRowSelect = true" kullanmak da çok önemlidir ... aksi takdirde yalnızca sütun 1 tıklanabilir. Keşke bunu daha önce bilseydim! bana bir ton işten tasarruf ettirirdi.
John Henckel

Özellikle listView1.View ile ilgili açıklama bana yardımcı oldu! Thnx!
Dev.Jaap

7
 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

Listview nesnesi ve listviewItem nesnesiyle ilgili msdn belgeleri burada verilmiştir.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx

En azından .net çerçevesinden kullandığınız nesnelerin belgelerine göz atmak için zaman ayırmanızı şiddetle tavsiye ederim. Belgeleme bazı zamanlarda oldukça zayıf olabilse de, özellikle böyle durumlarla karşılaştığınızda yine de paha biçilmezdir.

Ancak James Atkinson'ın dediği gibi, bu sadece bir liste görünüm öğesine benzer alt öğeler eklemek meselesidir:

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

4

Sorununuz için şu şekilde kullanın:

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

0

Yaptığım ve işe yarayan bir satır:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.