防止列表视图添加空白子项

时间:2014-02-06 16:50:53

标签: c# winforms listview

我有listview,其中根据可用主题的数量动态创建列。当我创建新的ListViewItem时,它会自动向subitem添加空白listview。由于列是动态创建的,因此子项被替换。这就是我做到的。

foreach(int id in stud)
{
ListViewItem gtb = new ListViewItem();
foreach(int sname in subj)
{
    gtb.SubItems.Add(value1);
    gtb.SubItems.Add(value2);
    gtb.SubItems.Add(value3);
}
gtb.SubItems.Add(value4);
listView1.Items.AddRange(new ListViewItem[] { gtb });
}

我知道将value1添加到新ListViewItem(value1)会解决这个问题,但我有另一个subitem,它位于foreach loop之外。我该如何解决这个问题?

enter image description here

3 个答案:

答案 0 :(得分:0)

添加一个'if'语句,用于检查每个值的长度,如果长度大于零,则将项目添加到'gtb'。

答案 1 :(得分:0)

创建String[],使用它来收集子项,然后使用以下内容创建新的ListViewItem

String[] subItems = new String[subj.Count + 1];  //add however many extras you need in place of 1
for (int j = 0; j < subj.Count; j++)
    subItems[j] = subj[j];
//add whatever else to the array you want...
listView1.Items.Add(new ListViewItem(subItems));

答案 2 :(得分:0)

我尝试手动添加一个宽度为0的新列,它可以正常工作。