Listview不会以垂直方式填充所有列

时间:2013-11-14 19:53:19

标签: c# listview

背景

我列出了从sqlite列存储解析数据的列表。我想在列表视图中向用户显示这些列表。他们点击一个按钮,列表视图应显示这3个列表及其内容。

这三个列表被称为SeqIrregularities,MaxLen和PercentPopList。

问题: 列表视图以水平方式填充(如下所示),其中仅包含 Seqirregularities 列表的内容。其他2甚至不出现。 希望列表视图在相应的列表列中垂直显示每个列表的内容。

旁注:listview正在跳过第一列,这是另一个问题,但我可以解决这个问题。

enter image description here

以下是代码:

 ListViewItem lvi = new ListViewItem(); 
            foreach (object o in SeqIrregularities )
            {
                lvi.SubItems.Add(o.ToString());
            }
            foreach (object a in MaxLen )
            {
                lvi.SubItems.Add(a.ToString()); 
            }
            foreach (object b in PercentPopList)
            {
                lvi.SubItems.Add(b.ToString()); 
            }

            listView1.Items.Add(lvi);

1 个答案:

答案 0 :(得分:1)

如果要将项目添加到ListViewItem对象并将其分配给ListView,则会创建一行,因为ListViewItem代表ListView中的一行。从您的代码中只添加ListViewItem一次,因此您只能获得一个水平行。

如果您需要获取多行(垂直),则需要将多个ListViewItem对象添加到ListView

        ListViewItem lvi = new ListViewItem(); 
        foreach (object o in SeqIrregularities )
        {
            lvi.SubItems.Add(o.ToString());
        }

        listView1.Items.Add(lvi);//Adds a new row
        lvi = new ListViewItem();

        foreach (object a in MaxLen )
        {
            lvi.SubItems.Add(a.ToString()); 
        }

        listView1.Items.Add(lvi);//Adds a new row
        lvi = new ListViewItem();

        foreach (object b in PercentPopList)
        {
            lvi.SubItems.Add(b.ToString()); 
        }

        listView1.Items.Add(lvi);//Adds a new row