我必须修复一些旧的 VB6 代码,其中一个问题是该应用程序在启动时将 18k 项加载到 3 个不同的组合下拉列表中。不用说,这需要很长时间。所以我从使用 .AddItem 方法改为使用 SendMessage API。这大大缩短了时间(减少了 60% 左右),但是每个下拉菜单仍然需要 1.4 秒来加载,所以启动仍然是 5 秒。
我还试图说服用户不要将所有 18k 都放在那里,但他们坚持所有条目都必须在那里以便快速查找。
我的问题...
- 是否有更快的方式加载那么多项目?
- 无论如何,只是为了在 3 个组合框之间共享数据,而不必为每个组合框添加 18k?
- 我可能忽略的任何其他解决方案。
最佳答案
我想你已经使用了 CB_ADDSTRING (而不是 CB_INSERTSTRING)
我建议您使用的下一项:CB_INITSTORAGE
检查组合框是否没有 CBS_SORT设置
在填充过程中 - 隐藏这些框,它可以加快一点
最后 - 将这些组合框填充为 3 个单独的线程
关于vb6 - 有没有更快的方法将 18k 项加载到组合下拉列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805879/