在C#的listview中向列添加文本

时间:2014-03-13 17:49:13

标签: c# winforms listview

我有一个包含两列的表,还有一个按钮,当我单击将文本添加到两列时,我使用的代码就是:

    listView1.Items.Add("hi 1");
    listView1.Columns.Add("hi 2"); // ERROR

问题是第二列不完整但如果完成了第一列的话。

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

您应该为ListView中的每一列添加带有项目的子项目数组的ListViewItem。如果您有两列:

listView1.Items.Add(new ListViewItem(new[] { "hi", "2" }));

答案 1 :(得分:0)

ListView control可以不同地布置它包含的项目。具有Column标题的布局是Details布局。可以使用ListView类的View属性进行设置。

此外,您需要第一个来添加列,然后添加项目,以便控件知道如何以及放置项目的位置。

一个例子:

    var lv = new ListView();
    // set layout with column headers
    lv.View = View.Details;
    // add one column
    lv.Columns.Add("A");
    // add two items to column A
    lv.Items.Add("Item 1");
    lv.Items.Add("Item 2");

输出如下:

enter image description here

请记住,不要在每次单击按钮时添加列,而只需添加一次。

如果您有多个列,则第一列之后的每一列都应添加为当前添加的SubItem项的ListViewItem

    // add two column
    lv.Columns.Add("A");
    lv.Columns.Add("B");
    // add one item to column A and B
    var lvi = lv.Items.Add("Item 1");
    lvi.SubItems.Add("SubItem 1");
    // add once again one row to column A and B
    lvi = lv.Items.Add("Item 2");
    lvi.SubItems.Add("SubItem 2");

表格如下:

enter image description here

答案 2 :(得分:0)

MyList.ForEach(name => listView1.Columns.Add(name));

试试这个或

        ColumnHeader header = new ColumnHeader();
        header.Text = "gkgag";
        header.Width = 100;
        header.TextAlign = HorizontalAlignment.Center;
        listView1.Columns.Add(header);