Visual Studio - 应用程序概念和"当前进程已使用其所有系统允许的窗口管理器对象的句柄"错误

时间:2015-12-19 14:54:17

标签: algorithm visual-studio user-controls handle explorer

我有一个应用程序,它给了我"当前进程已经使用了它的所有系统允许窗口管理器对象的句柄"错误,因为它生成了太多用户控件。要了解我面临的问题,我将举例说明。让我们考虑一下Windows资源管理器窗口,我将在其中显示一些UserControls。

我的用户可以保存很多东西,我无法一直控制他保存的内容以及保存的位置。这些东西可以分组或不分组。在某个时刻,我需要在一个带滚动条的表单中显示所有这些内容,使用一个或多个treeview-like-display,每个都有一个标题。

这些显示的项目中的每一个都显示为使用3种UserControl,其中包含图片和标签(这3个控件中的每一个都有不同的可视化表示)。并且当我有超过3000个项目要显示时,我达到10000个句柄限制,因为UserControls似乎至少有3-4个句柄。

因此我需要限制用于显示的已创建UserControl的数量  但是......怎么样?处理这个问题的最佳方法是什么?

我在这里遇到了一个概念问题,在考虑之后,我找到了很多可能的解决方案。他们每个都需要我的应用程序进行深度返工,如果您知道一个很好的方法,我想知道

我可以管理所有项目,并且可以管理所有项目。好像它们是真正的UserControls,只显示那些在可见区域内的人(考虑滚动条) 但是怎么样?屏幕上的图形写入,没有更多UserControls?但是,我将放弃使用Visual Studio提供的视觉和事件功能的所有好处,我担心糟糕的糟糕表现。我有一些特定和复杂的显示,由Visual Studio控件自动处理。而且我真的不想重写Visual Studio控件:-)
或者创建 - 即时销毁所需/不需要的UserControls?如果我有很多事情需要处理,我也担心会有糟糕的糟糕表现。

你知道做这种事的最佳方法是什么吗?

作为比较,我注意到Windows资源管理器可以显示大量项目而不会出现问题。但是我可以使用一个简单的技巧:所有的资源管理器项目都是相同的高度,所以在这里准备一堆控件可以很容易地收到要显示的内容。

0 个答案:

没有答案