vb6 - 有没有更快的方法将 18k 项加载到组合下拉列表中?

标签 vb6

我必须修复一些旧的 VB6 代码,其中一个问题是该应用程序在启动时将 18k 项加载到 3 个不同的组合下拉列表中。不用说,这需要很长时间。所以我从使用 .AddItem 方法改为使用 SendMessage API。这大大缩短了时间(减少了 60% 左右),但是每个下拉菜单仍然需要 1.4 秒来加载,所以启动仍然是 5 秒。

我还试图说服用户不要将所有 18k 都放在那里,但他们坚持所有条目都必须在那里以便快速查找。

我的问题...

  1. 是否有更快的方式加载那么多项目?
  2. 无论如何,只是为了在 3 个组合框之间共享数据,而不必为每个组合框添加 18k?
  3. 我可能忽略的任何其他解决方案。

最佳答案

我想你已经使用了 CB_ADDSTRING (而不是 CB_INSERTSTRING)

我建议您使用的下一项:CB_INITSTORAGE

检查组合框是否没有 CBS_SORT设置

在填充过程中 - 隐藏这些框,它可以加快一点

最后 - 将这些组合框填充为 3 个单独的线程

关于vb6 - 有没有更快的方法将 18k 项加载到组合下拉列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805879/

相关文章:

VB6 "Invalid use of property"错误,代码看起来没问题

c# - COM Interop 和 .NET 3.5 的问题 - 调试和 Release模式下的不同行为

windows - VB - 以隐式方式链接 DLL

vb6 - 应用程序标题在 VB6 中截断

internet-explorer - 使用 VB6 检测 Internet Explorer 版本

reflection - 如何在 VB6 中以编程方式列出对象的属性?

c# - 在 VB6 应用程序中使用 .NET dll

vb6 - Visual Basic 6.0 中的自动类型转换

vb6 - 在 VB6 IDE 中检查长字符串的完整值

vb6 - Visual Basic 项目的测试覆盖率