当前位置:首页 > 开发 > C# > 正文内容

C# ListView 虚拟化加载百万数据

C#5年前 (2021-12-20)
private void Form1_Load(object sender, EventArgs e)
        {
            listView1.View = View.Details;
            listView1.Columns.Add("索引", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("对象", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("通过", 100, HorizontalAlignment.Left);
            listViewItems = GetListViewItems();
            LoadListViewItems();
        }
        protected List<ListViewItem> listViewItems
        {
            get;
            private set;
        }
        private List<ListViewItem> GetListViewItems()
        {
            List<ListViewItem> items = new List<ListViewItem>();
            ListViewItem item = null;
            for (int i = 0; i < 1000000; i++)
            {
                item = new ListViewItem();
                item.SubItems[0].Text = i.ToString();
                item.SubItems.Add("编号" + i);
                item.SubItems.Add("true");
                items.Add(item);
            }
            return items;
        }
        private void LoadListViewItems()
        {
            listView1.VirtualListSize = this.listViewItems.Count;
            listView1.VirtualMode = true;
            listView1.RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(listView_RetrieveVirtualItem);
        }
        void listView_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
        {
            e.Item = this.listViewItems[e.ItemIndex];
            if (e.ItemIndex == this.listViewItems.Count)
            {
                this.listViewItems = null;  //加载完成后清空listViewItems
            }
        }


转载请注明出处。

本文链接:http://www.pythonopen.com/?id=172

返回列表

上一篇:C# 数据类型

下一篇:C# protected

相关文章

CS0052 可访问性不一致: 字段类型“n1”的可访问性低于字段“n2”

问题CS0052 可访问性不一致: 字段类型“n1”的可访问性低于字段“n2”原因n1未使用publ...

C# 文件属性与转换为字节

获取文件属性    FileInfo fileInfo&nb...

C# 计算平年闰年

一个年份整除4取余,如果有余数,则为平年,如果没有余数,则是闰年。但如果是这个年份是100的倍数,则...

在 C# 中实现类似于 Windows 资源管理器的“名称”排序方式

要在 C# 中实现类似于 Windows 资源管理器的“名称”排序方式,你需要考虑以下几点:1. 不...

C# 可空参数

using System; using System.Runtime.Inte...

C# System.IO.Path

System.IO.Path.GetExtension返回指定的路径字符串的扩展名。string&n...