代码之家  ›  专栏  ›  技术社区  ›  Jean Azzopardi

当有太多项目无法滚动时,Windows窗体列表框溢出

  •  3
  • Jean Azzopardi  · 技术社区  · 17 年前

    我所做的是在文本框中输入一个字符串,按下按钮,运行一个函数来查询后缀树,并将字符串的所有出现位置添加到列表框中。所以列表框里面有很多整数。

    我知道滚动浏览88974个(基于listbox.Items.Count)项目有点极端,但从逻辑上讲,没有理由会出现这样的问题。

    谢谢你读到这里!

    4 回复  |  直到 17 年前
        1
  •  4
  •   peterchen    17 年前

        2
  •  6
  •   Hans Passant    17 年前

    可能列表框仍然使用16位范围/位置消息作为滚动条。若这是底层控件的问题,您可以尝试在Win32中重现它。

    您可能希望尝试使用列表视图控件而不是列表框。我希望它不会遇到这种限制,它的虚拟模式也应该更高效。

        3
  •  1
  •   Ryan Emerle    17 年前

        4
  •  1
  •   JaredPar    17 年前

    正如其他人所说,您似乎遇到了列表框中可以存储的最大项目数的限制。您可能最好在虚拟模式下切换到使用包含这么多项目的DataGridView。

    实现DataGridView对于SO答案来说有点太长了,但这里有一个教程的链接:

    http://msdn.microsoft.com/en-us/library/2b177d6d.aspx