在TeeChart ActiveX 5组件中进行绘图时,为什么会收到"画布不允许绘图"的信息?

时间:2020-03-05 18:59:33  来源:igfitidea点击:

我正在将Steema的TeeChart ActiveX 5组件用于.NET C#中的应用程序。

我通过组件的" Canvas"属性使用" Line()"," Rectangle()"和" Circle()"方法绘制了一些图纸。

我的绘图代码在组件的每个OnBeforeDrawSeries()和OnAfterDraw()事件中都被调用。

当只有几张图纸时,它可以正常工作。但是,当绘图量增加并且经过一定数量的重绘后,我得到一个带有错误消息"画布不允许绘图"的" MessageBox",然后应用程序退出。

我相信这是由于绘图调用"重载"了组件造成的。

我是否以错误的方式使用了此功能,还是可以将其视为组件中的BUG?

解决方案

回答

我认为这是一个错误,因为与此组件及其管理内存的方式存在类似的问题(Canvas除外)。

在某些具有少量RAM的计算机上,当我们创建大量图形并显示它们时,我们将收到一个消息框,其中显示以下消息:"没有足够的存储空间来处理此命令"。一旦出现此框,就无法关闭此框,因为如果单击"确定",则消息框将一次又一次地显示。因此,我们需要杀死该应用程序才能使用它。我认为该错误与绘制过程有关,因为当我们关闭消息框时,该组件会尝试重新绘制显示该消息框的区域,然后再次发生该错误。

首先,我们知道TeeChart ActiveX的版本为8. 也许此版本可以解决此问题。

我建议也尝试使用.NET版本的TeeChart。根据我自己的经验,TeeChart .NET没有任何内存问题,因为内存是由.NET框架管理的。