gpt4 book ai didi

c# - 在 C# 中将项目添加到 ListView 太慢

转载 作者:太空狗 更新时间:2023-10-29 23:17:16 26 4
gpt4 key购买 nike

我想将项目添加到 ListView 控件。这是一些代码:

    this.lView.ListViewItemSorter = null;
ListViewItem[] lvitems = new ListViewItem[ListMyObjects.Count];
int index = 0;
foreach (MyObject object in ListMyObjects)
{
ListViewItem item = new ListViewItem();
item.Text = object.Name;
lvitems[index++] = item;
}
this.lView.BeginUpdate();
this.lView.Items.AddRange(lvitems); // Slow in here with debugger
this.lView.EndUpdate();

我只添加了大约 1000 个项目,但速度非常慢。大约需要 15 秒才能完成。为什么有人知道原因?预先感谢。

编辑:

我之前定制过listview。

public partial class MyListView: ListView
{
public MyListView()
{
InitializeComponent();
this.View = View.Details;
this.FullRowSelect = true;
this.DoubleBuffered = true;
}
private bool mCreating;
private bool mReadOnly;
protected override void OnHandleCreated(EventArgs e)
{
mCreating = true;
base.OnHandleCreated(e);
mCreating = false;
}
public bool ReadOnly
{
get { return mReadOnly; }
set { mReadOnly = value; }
}
protected override void OnItemCheck(ItemCheckEventArgs e)
{
if (!mCreating && mReadOnly) e.NewValue = e.CurrentValue;
base.OnItemCheck(e);
}
}

我这样做是因为我不想在使用多线程时挂起。我不知道这对它有什么影响?

最佳答案

您可以通过启用 virtual mode 使其更快.
但是,这需要一些工作。

关于c# - 在 C# 中将项目添加到 ListView 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8570481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com