这是我的代码,用于将项目添加到我的列表视图中:
ListViewItem item = new ListViewItem(ProjectDomainName);
item.Tag = relatedProject.ProjectId;
lvwSelectedProjects.Items.Add(item);
当我选择'View.List'
作为viewmode时,我会看到所有项目。
当我选择'View.Details'
(这是我想要的设置)时,我看到......没有。好吧,没什么,我得到一个垂直滚动条,但没有项目。我也可以滚动,但没有项目......
我还在listview中添加了一列(没有更改添加项目代码),但这也没有用
我一定是在忽视什么?
答案 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;