winforms listview没有在detailsview中显示项目

时间:2011-08-22 11:08:45

标签: c# winforms listview

我被困了......

这是我的代码,用于将项目添加到我的列表视图中:

ListViewItem item = new ListViewItem(ProjectDomainName);
item.Tag = relatedProject.ProjectId;
lvwSelectedProjects.Items.Add(item);

当我选择'View.List'作为viewmode时,我会看到所有项目。

当我选择'View.Details'(这是我想要的设置)时,我看到......没有。好吧,没什么,我得到一个垂直滚动条,但没有项目。我也可以滚动,但没有项目......

我还在listview中添加了一列(没有更改添加项目代码),但这也没有用

我一定是在忽视什么?

5 个答案:

答案 0 :(得分:9)

此代码适用于我:

using System;
using System.Windows.Forms;

public class LVTest : Form {
    public LVTest() {
        ListView lv = new ListView();
        lv.Columns.Add("Header", 100);
        lv.Columns.Add("Details", 100);
        lv.Dock = DockStyle.Fill;
        lv.Items.Add(new ListViewItem(new string[] { "Alpha", "Some details" }));
        lv.Items.Add(new ListViewItem(new string[] { "Bravo", "More details" }));
        lv.View = View.Details;
        Controls.Add(lv);
    }
}

public static class Program {
    [STAThread] public static void Main() {
        Application.Run(new LVTest());
    }
}

在空项目中亲自尝试此代码。然后,专注于使其适应您的应用程序:比较您的程序与此代码的不同之处,并努力将其更改为更接近我的程序。如果你的程序失去了功能,那就没关系了。只是尝试让基本版本正常工作。然后,逐位添加功能,这样您就可以确保程序在每一步都能正常工作。

如果您仍然卡住,请从您的项目中发布更多代码,我们可能会更好地了解您遇到问题的原因。

答案 1 :(得分:1)

当listview.View = View.Details时,另一个空白项的可能原因是您不向列表视图添加任何列

例如:

ListView lv = new ListView();
lv.View = View.Details;
lv.Items.Add("Test");

..将导致一个空白的ListView。
添加一列将纠正:

...
lv.View = View.Details;
// Add one auto-sized column, to show Text field of each item.
lv.Columns.Add("YourColumnTitle", -2);
...

答案 2 :(得分:0)

因为您应该使用ListViewDataItem而不是ListViewItem,请观察...

        for (int i = 0; i < AudioCdWriter.FileCount; ++i) {
            var item = new ListViewDataItem(i.ToString());
            item.SubItems.Add(AudioCdWriter.TrackLength((short)i).ToString());
            item.SubItems.Add(AudioCdWriter.file[(short)i]);
            lvwAudioFiles.Items.Add(item);
        }

答案 3 :(得分:0)

ListViewItem item = new ListViewItem("item1");
item.SubItems.Add("subitem"); //add subitem if applicable
listview1.Items.Add(item);

此结果可以出售给您的问题

答案 4 :(得分:-1)

这也发生在我身上(listview没有在详细信息视图中显示项目)我只是将以下内容添加到代码中(之前只在设计中),然后将项目添加到listview并开始显示项目。

lv.View = View.Details;