【问题标题】:Combobox in winform and many entrieswinform中的组合框和许多条目
【发布时间】:2012-09-10 15:11:10
【问题描述】:

我正在尝试在 winform 中获得一个包含大约 5'000 个条目的组合框。我之前遇到过一个问题 - addrange 挂起这么多条目。我创建了一个单独的控件来为自己执行此操作而不会滞后,但我正在将此功能添加到现有的组合框。

在尝试查看是否可以解决此问题时,我正在查找 WPF 的 VirtualizingStackPanel。

有没有办法为几千个字符串条目提高 addrange 的性能?

【问题讨论】:

  • 您确定组合框是代表 5000 个条目的正确界面元素吗?我认为这对用户来说并不理想。
  • 就是这种情况:程序从一开始就一直这样运行,他们已经习惯了。我很好奇其他人会用什么来代替组合框?列表框等
  • 作为用户,我更喜欢带有某种自动完成功能的文本框。
  • 或者更好的是:一个带有按钮的文本框,该按钮打开一个新的可调整大小的窗口,其中包含所有项目,并消除了查找时键入的子字符串项目。
  • 我需要要求我的工作给我一台更好的计算机,以便在一台 5 岁半坏的笔记本电脑上进行编程,这样我就不会错过我的代码在 for 循环中运行的情况。顺便说一句,亲爱的上帝,我是否提高了该程序的效率,因为我认为这不是瓶颈>。

标签: c# winforms combobox addrange


【解决方案1】:

您是否尝试过使用ComboBox.BeginUpdateComboxBox.EndUpdate?使用这些方法可以提高添加项目时的性能。

当然,如果您有 5000 个项目,那么使用 ComboBox 可能不是正确的控件(超过 200 个左右的项目会使滚动变得不可能,这违背了使用下拉选择器的意义)。您是否考虑过使用普通文本框但使用自动完成提供程序?

【讨论】:

  • 第二段+1。至于第一个,如果您已经在使用AddRange,请不要指望BeginUpdateEndUpdate 有任何好处。
  • +1 表示第一段。 BeginUpdate 和 EndUpdate 帮助我解决了向表单添加大量控件时遇到的性能问题。
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多