日期:2014-05-17  浏览次数:20799 次

动态追加2万以上控件时,出错,求解。
因为要做一个自定义表格控件,所以需要动态做成大量控件,当我动态追加2万个以上的控件时,系统报错

提示:Error creating window handle.(创建窗口句柄时出错)

好像系统最多让我创建1万个,如果再多需要修改注册表,但即使修改注册表也最多能创建18000个
如何解决上面的问题啊,还请高手赐教。

------解决方案--------------------
大量控件?思路不对,GDI自己绘制
------解决方案--------------------
什么需求让你动态添加2万个控件。

合理的分析需求。变向实现。

即使2万个可以加载,那你的软件谁敢用。
------解决方案--------------------
兩万个。我服了。。。你界面放得下这么多吗?动态生成吧。
------解决方案--------------------
windows的句柄数量有限,你这样耗尽了系统资源了。
可以改用WPF自定义控件添加,WPF的控件不使用系统句柄资源,任意添加不会出问题,但是WinForm下面的控件就不可以,你必须分清楚。
------解决方案--------------------
让根本不会写程序的人来胡搞真可怕,创建2万个控件亏你想得出来。

软件设计绝对不是凭借你的直觉去堆砌控件就能做的。

任何电子表格,都是直接绘制的。Excel 5.0在Windows 3.1 + 2MB的环境下足够柔韧有余地处理数万的数据。
------解决方案--------------------
有意思...2W个控件 全是文本框吗? 都得输入吗?

这会死人的啊...
------解决方案--------------------
呵呵,人材啊~如果可以,2W个Control,需要几秒时间初始化?

建议采用控件复用的方法完成
------解决方案--------------------
给你买了200个叉烧包,结果你吃到第8个就说饱了,拒绝再吃。
如何能再强塞192个包?求解决。
------解决方案--------------------
膜拜ing
------解决方案--------------------
重新写控件吧,即使你解决了20000个控件的问题,这个控件还是没法用的。
------解决方案--------------------
啊 头一次看到这样的错误 哈哈 太逗了 
既然上面有大牛说WPF的控件不会占用系统资源 你就用WPF写出来
然后让WInForms引用这个自定义控件 不就完了 你也不用改太多东西
------解决方案--------------------
哎 同情楼主啊 修改别人的程序还不如自己做呢

建议用4楼的方法 不错的
------解决方案--------------------
用户的焦点范围是有限的,在适度字体大小,一个人视觉范围定位到屏幕上大约在也就那么20,30行.
并且他想要处理的资料不会很多.
所以你要解决的就是不要把用户不看的,不需要的统统加载出来.

1.减少加载数量,提供滚动时动态加载 (这个在现有程式上修改应该并不难),也可以分页
2.提供给用户排序,筛选功能,并适度提供一些进阶筛选,类似EXCEL
------解决方案--------------------
引用:
用户的焦点范围是有限的,在适度字体大小,一个人视觉范围定位到屏幕上大约在也就那么20,30行.
并且他想要处理的资料不会很多.
所以你要解决的就是不要把用户不看的,不需要的统统加载出来.

1.减少加载数量,提供滚动时动态加载 (这个在现有程式上修改应该并不难),也可以分页
2.提供给用户排序,筛选功能,并适度提供一些进阶筛选,类似EXCEL


+10086

当时我做网络监控软件的时候
也是这样 
2000多台电脑的远程桌面缩略图
光控件就是一个难题。
只用在可视化区域动态加载
然后里面的缩略图再慢慢显示(之前用心跳,可视化区域传递缩略图)
------解决方案--------------------

------解决方案--------------------
换思路吧,要不表格就得分页。
------解决方案--------------------
完全不懂程序的老板指挥半吊子的程序员才会写这种根本不能用的东西。
------解决方案--------------------
这么多的控件,在界面如何分布?这个思路有问题。