C # listView, làm cách nào để thêm các mục vào cột 2, 3 và 4, v.v.?


106

Để thêm các mục vào cột 1 trong listViewđiều khiển của tôi ( Winform) tôi đang sử dụng listView1.Items.Add, điều này hoạt động tốt nhưng làm cách nào để thêm các mục vào cột 2 và 3, v.v.?


8
+1: Câu hỏi hay. phần này của điều khiển ListView rất khó hiểu và không trực quan. Đôi khi tôi thực sự nghĩ rằng họ ghét các nhà phát triển @ MS
Mehdi Lamrani

1
@Mika: Không dễ dàng gì để loại bỏ sự phức tạp của thiết kế GUI mạnh mẽ khỏi người dùng.
Christopher Berman

1
(Bằng cách đó nghe có vẻ ít kẻ trong đầu tôi; xin lỗi!)
Christopher Berman

Thêm vào subiiems
Ramankingdom

Câu trả lời:


134

Có một số cách để thực hiện, nhưng đây là một giải pháp (cho 4 cột).

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

Và một cách dài dòng hơn là ở đây:

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

Bạn có thể thêm các mục / mục con vào ListView như:

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

Nhưng tôi nghi ngờ vấn đề của bạn là với Dạng xem . Đặt nó trong trình thiết kế thành Chi tiết hoặc thực hiện như sau trong mã:

listView1.View = View.Details;

2
Điều rất quan trọng là sử dụng "listView1.FullRowSelect = true" ... nếu không, chỉ cột 1 là có thể nhấp được. Tôi ước gì tôi biết điều này sớm hơn! nó sẽ giúp tôi tiết kiệm rất nhiều công việc.
John Henckel

Đặc biệt nhận xét về listView1.View đã giúp tôi! 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

Đây là tài liệu msdn về đối tượng listview và đối tượng 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

Tôi thực sự khuyên bạn ít nhất nên dành thời gian để đọc lướt tài liệu về bất kỳ đối tượng nào bạn sử dụng từ khung công tác .net. Mặc dù đôi khi tài liệu có thể khá nghèo nàn nhưng nó vẫn vô giá đặc biệt là khi bạn gặp phải những tình huống như thế này.

Nhưng như James Atkinson đã nói, việc thêm các subitem vào listviewitem như sau:

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

4

Đối với vấn đề của bạn sử dụng như thế này:

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

0

Một dòng mà tôi đã thực hiện và nó hoạt động:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.