winforms listview没有在detailsview中显示项目

我被困了….

这个我的代码将项目添加到我的listview:

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

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

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

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

我一定是在忽视什么?

这段代码适合我:

 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()); } } 

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

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

因为,你应该使用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); } 

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

 lv.View = View.Details;