我正在使用Steema的TeeChart ActiveX 5组件用于.NET C#中的应用程序。
我使用方法Line()
,Rectangle()
和Circle()
通过组件的“Canvas
”属性执行一些绘图。
我会在组件的每个OnBeforeDrawSeries()
和OnAfterDraw()
事件中调用我的绘图代码。
当只有几张图纸时,它可以正常工作。但是当绘图量增加并且经过一定数量的重绘后,我得到一个MessageBox
错误“画布不允许绘图”并且应用程序退出
我相信这是因为使用绘图调用“重载”组件。
我是否以错误的方式使用此功能,或者我可以将其视为组件中的BUG?
答案 0 :(得分:1)
我认为这是一个错误,因为我对此组件及其管理内存的方式有类似的问题(不是使用Canvas)。
在具有少量RAM的某台机器上,当我们创建大量图形并显示它们时,我们将收到一个消息框,其中显示“没有足够的存储空间来处理此命令”。出现此框后,无法关闭此框,因为如果单击“确定”,将一次又一次显示消息框。所以,你需要杀死应用程序才能获得它。我认为该错误与绘图过程有关,因为当我们关闭消息框时,组件会尝试重新绘制显示消息框的区域,并再次发生错误。
首先,您知道TeeChart ActiveX现在是版本8.也许此版本可以解决此问题。
我建议也尝试使用TeeChart的.NET版本。根据我自己的经验,TeeChart .NET没有任何内存问题,因为内存由.NET框架管理。