所以,我有一個列表視圖,如問題標題所示。我有兩列設置:姓名和修改日期。這些都是在設計師加入,這裏是由設計師參考發出的代碼:爲什麼我的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