【发布时间】:2013-07-16 20:21:13
【问题描述】:
在 C# 中加载主 UI 表单之前,我正在加载一些包含大量字符串的组合框(一个具有 +70,000 个值)。我在 tabControl 的单独 tabPages 中有组合框。我这样做是为了在显示 UI 表单时不会延迟显示选项卡和组合框。
现在,问题是第一个 tabPage 运行良好,并且显示得很快。但是,包含其他组合框的其他 tabPages 最多需要 10 秒才能完全呈现和显示。
我曾尝试在加载 UI 表单之前使用 CreateControl 创建控件(组合框),但没有帮助。我了解 C# tabControls 具有这种所谓的“延迟加载”行为。我想知道如何克服“懒惰”功能,以便在显示表单之前创建和呈现组合框,并且当我切换到其他标签页时,没有延迟?
[现在编辑了标签 - 这是与 WinForms 相关的。]
谢谢,
【问题讨论】:
-
我从标题中假设这与 winforms 无关,但可能值得用相关的 UI 框架(WinForms、WebForms、ASP.NET、Silverlight、MVC 等)标记您的问题消除混淆并将问题指向最适合回答的问题。
-
仅供参考,我 just tested 一个包含 100,000 个项目并启用 UI Virtualization 的 WPF 组合框,我的机器上的加载时间为 0.0053 秒。您最好的选择是使用ElementHost 并在您的(现有?)winforms 应用程序中托管一个 WPF ComboBox。这是从 winforms 中获得任何好处的唯一方法。
标签: c# winforms combobox tabcontrol lazy-evaluation