C # listView, bagaimana cara menambahkan item ke kolom 2, 3 dan 4 dll?


106

Untuk menambahkan item ke kolom 1 di listViewcontrol saya ( Winform) yang saya gunakan listView1.Items.Add, ini berfungsi dengan baik tetapi bagaimana cara menambahkan item ke kolom 2 dan 3 dll?


8
+1: Pertanyaan bagus. bagian dari kontrol ListView ini sangat membingungkan dan tidak intuitif. Terkadang saya benar-benar berpikir mereka membenci pengembang @ MS
Mehdi LAMRANI

1
@ Mika: Tidak mudah untuk mengabstraksikan kerumitan desain GUI yang kuat dari pengguna.
Christopher Berman

1
(Kedengarannya kurang menggurui di kepala saya; maaf!)
Christopher Berman

Tambahkan ke subiiems
Ramankingdom

Jawaban:


134

Ada beberapa cara untuk melakukannya, tetapi ini adalah satu solusi (untuk 4 kolom).

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

Dan cara yang lebih bertele-tele ada di sini:

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

Anda dapat menambahkan item / sub-item ke ListView seperti:

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

Tapi saya menduga masalah Anda adalah dengan Jenis Tampilan . Atur di desainer ke Detail atau lakukan hal berikut dalam kode:

listView1.View = View.Details;

2
Sangat penting juga untuk menggunakan "listView1.FullRowSelect = true" ... jika tidak, hanya kolom 1 yang dapat diklik. Saya berharap saya tahu ini sebelumnya! itu akan menghemat banyak pekerjaan.
John Henckel

Terutama komentar tentang listView1.View memang membantu saya! 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

Berikut adalah dokumentasi msdn pada objek listview dan objek 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

Saya akan sangat menyarankan agar Anda setidaknya meluangkan waktu untuk membaca sekilas dokumentasi pada objek apa pun yang Anda gunakan dari kerangka kerja .net. Meskipun dokumentasinya bisa sangat buruk pada beberapa waktu, namun tetap tidak ternilai harganya terutama ketika Anda mengalami situasi seperti ini.

Tapi seperti yang dikatakan James Atkinson, itu hanya masalah menambahkan subitem ke listviewitem seperti:

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

4

Untuk masalah Anda gunakan seperti ini:

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

0

Satu baris yang telah saya buat dan berhasil:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.