gpt4 book ai didi

c++ - 如何避免 TListView 触发 OnSelectItem 事件(c++ Embarcadero)

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:43:17 25 4
gpt4 key购买 nike

我目前正在 Embarcadero C++ 上使用 TListView,其中的对象可能有数千个项目。我想设置一个 CTRL+A 功能,以便一次选择所有项目。然而,我设法做到了这一点,当使用 myListView->SelectAll(); 时,它会为每个项目 (!!!) 触发一个 OnSelectItem 事件,这可能会花费大量时间。我尝试了 BeginUpdate/EndUpdate, Enabled = false 但完全没有结果 - 即为每个项目触发 OnSelectItem。即使我设置一个变量来实现从 OnSelectItem 事件立即返回,也需要太多时间。

是否有一个简单的解决方案来避免在调用 SelectAll() 时触发数千个事件?

感谢您的帮助。

最佳答案

如果这不可能,我也不会感到惊讶,但我想知道为什么调用 OnSelectItem 的时间少于 100 000 个项目...也许您只需要提高 OnSelectItem 管理性能,例如如果你在 SelectAll 中间,就从他们那里返回

在一些评论后添加:

是的,TListView 不适合处理这么多项目,我没有看到任何用户滚动那么多行,无论如何,如果您在另一个线程中执行它似乎会快得多 like they recommend in this Embarcadero article

关于c++ - 如何避免 TListView 触发 OnSelectItem 事件(c++ Embarcadero),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44848450/

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