| Код | public partial class FileListView : ListView { private FileSystemInfo[] m_FSInfo;
public FileListView() { InitializeComponent(); InitFileList(); }
private void InitFileList() { this.Dock = System.Windows.Forms.DockStyle.Fill; this.Location = new System.Drawing.Point(3, 3); this.Name = "FileListView"; this.Size = new System.Drawing.Size(248, 202); this.TabIndex = 0; this.UseCompatibleStateImageBehavior = false; this.View = System.Windows.Forms.View.Details; this.VirtualMode = true; this.DoubleBuffered = true; this.Columns.Add("Name", 200); this.Columns.Add("Type", 50); this.Columns.Add("Size", 50); this.Columns.Add("Attributes", 50); GetLocalFiles("c:\\windows\\system32\\"); }
protected override void OnRetrieveVirtualItem(RetrieveVirtualItemEventArgs e) { base.OnRetrieveVirtualItem(e); ListViewItem itm = new ListViewItem(m_FSInfo[e.ItemIndex].Name); itm.SubItems.Add(m_FSInfo[e.ItemIndex].Extension); itm.SubItems.Add("Test1"); itm.SubItems.Add("Test2");
e.Item = itm; }
private int GetLocalFiles(string sLocalPath) { DirectoryInfo dInfo = new DirectoryInfo(sLocalPath); m_FSInfo = dInfo.GetFileSystemInfos(); this.VirtualListSize = m_FSInfo.Length; return this.VirtualListSize; } }
|
С двумя колонками работает а после создания еще нескольких выдает ошибку: when in VirtualMode the ListView RetrieveVirtualListItem events needs a list view SubItem for each ListView column. |