Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > VirtualList in C#


Автор: Therion 25.11.2006, 17:22
Код

    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.

Автор: mr.DUDA 25.11.2006, 23:04
Ну из сообщения ясно же что нужно заполнять все колонки (SubItems.Add для всех).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)