所以,我有一个列表视图,如问题标题所示。我有两列设置:姓名和修改日期。这些都是在设计师加入,这里是由设计师参考发出的代码:为什么我的ListView不能正确显示Details视图?
// lstFiles
this.lstFiles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.clmName,
this.clmDate});
// ...
// clmName
this.clmName.Text = "Name";
this.clmName.Width = 105;
// clmDate
this.clmDate.Text = "Modified";
this.clmDate.Width = 128;
在设计,这个看上去很美。
列表项本身是一个ListViewItem的一个微小的子类,简单地提取一些元数据从一个文件(在这种情况下,修改日期),并增加了一个分项目本身:
class GalleryItem : ListViewItem {
public string File;
public DateTime DateModified;
public GalleryItem(string file) : base(Path.GetFileNameWithoutExtension(file)) {
this.ImageKey = Path.GetExtension(file);
File = file;
DateModified = System.IO.File.GetLastWriteTime(file);
this.SubItems.Add(DateModified.ToString());
}
}
要添加项目清单,我只是这样做:
lstFiles.BeginUpdate();
lstFiles.Clear();
foreach (String f in files) {
ListViewItem lvi = new GalleryItem(f);
lvi.Group = lstFiles.Groups["grpFiles"]; //this varries
//omitted: check/add icon to list
lstFiles.Items.Add(lvi);
}
lstFiles.EndUpdate();
所以,这一切都为大图标视图的伟大工程,等:
然而,它打破了上详细查看:
有在列表项目(有一个滚动条)。如果您大致点击红色箭头下的列(添加在绘画中),则会选择一个项目(右上方区域为图像预览),但不会看到任何选定内容。
总之,我做错了什么?
这个红色箭头从哪里来?你不能只是重写OnPaint和/或与UserPaint风格混淆。 – 2011-02-26 17:01:02
请确保您阅读了整个问题:“如果您大致点击**红色箭头(添加在绘图中)的列**” – 2011-02-26 17:03:30