C#ListView在组中显示为空白

时间:2010-12-10 15:32:23

标签: c# .net winforms listview

在VS2005中,使用C#,我有一个带有ListView的Forms应用程序。我可以将项目添加到列表视图中。但是,只要我尝试将这些项目分组,它们就不会出现。我知道群组在空闲时不会出现,但我已经确认这些群组为空。另外,我设置listView.ShowGroups = true。如果我将项目添加到其中一个组而不是第二个组,则“默认”组会显示...它只是我添加的组没有出现!

这是我正在使用的代码:

this.listView.View = View.Details;
this.listView.Columns.Add("Column1");
this.listView.Columns[0].Width = this.listView.Width - 20;
this.listView.HeaderStyle = ColumnHeaderStyle.None;
this.listView.Groups.Add(new ListViewGroup("A"));
this.listView.Groups.Add(new ListViewGroup("D"));


foreach(item i in Class.Items)
{
    if (i.Type == Type.A)
        this.listView.Groups[0].Items.Add(i.Name);
    else
        this.listView.Groups[1].Items.Add(i.Name);
}
this.listView.ShowGroups = true;

有没有人知道为什么我的小组不会出现?这是我看到的屏幕截图:

alt text

3 个答案:

答案 0 :(得分:11)

您不应该向组添加项目,而是将项目添加到列表视图中,并且对于每个项目,将其Group属性设置为所需的组。

您可以在此MSDN link

中查看示例

答案 1 :(得分:7)

如果在ShowGroups值设置为false且ShowGroups属性稍后设置为true时将项目添加到列表视图中,则列表框在显示组时将显示为空白(但内容为ShowGroups是假的。)

构建列表时,

ShowGroups必须为真。

时机也很重要。需要在ShowGroups属性设置为false之前呈现列表框。我在显示的对话框中设置了它。

我在.Net 4.0中工作时发现了这一点。

答案 2 :(得分:0)

尝试以下代码:

listView.Groups[0].Items.Add(listView.Items.Add("Item 1"));
相关问题