.Net TreeView EndUpdate is very slow

本文关键字:very slow is EndUpdate TreeView Net | 更新日期: 2023-09-27 18:15:40

我们有一个用c++/CLI (WinForm)编写的遗留应用程序,它显示了一个包含近10K个元素的复杂树视图。添加/删除/重命名树节点被封装在BeginUpdate/EndUpdate方法中。EndUpdate()方法的问题是,它需要将近180秒才能完成。即使只有100个节点可见,而其他节点已崩溃,也需要相同的时间。由于EndUpdate()方法需要相同的时间,我猜TreeView正在绘制节点,即使它们不可见。有什么方法可以防止画不可见的树节点吗?请建议如何提高这幅画的速度?注意:treeview的DoubleBuffered属性被设置为true。

.Net TreeView EndUpdate is very slow

这个适合我:

    Visible = false;
    ...
    Visible = true;

在我的例子(2000个节点)中,加载树只需要1~2秒,这比任何其他方法都要快得多。