我有一个程序可以加载一个选项卡,该选项卡加载了大约 332 个文本框。加载新选项卡时,在显示选项卡之前会有 2-3 秒的延迟。我曾尝试暂停和恢复,甚至研究过线程,但发现 winform 只能使用一个线程。
我想知道是否有一种方法可以在另一个线程中创建文本框,然后将它们添加到主窗体中,或者有一种方法可以更好地创建 332 个文本框。
感谢您的帮助。
最佳答案
根据您的布局,我强烈建议用 DataGridView 替换文本框,或者使用某种连续控件在滚动时加载文本框。 主要瓶颈是 handle 的创建。在 winforms 中,每个控件都有自己的句柄(甚至是标签),当像这样大量使用时,确实会带来性能问题。
如果 datagridview 不是一个选项,您能否提供更多关于布局的信息(也许是屏幕截图?),以便社区可以尝试其他选择。在另一个线程中创建文本框会在您尝试添加它们时产生问题,但您可以仅在需要时创建它们。
关于c# - winform的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290263/