2008-09-17 88 views
0

我在.NET C#中使用Steema的TeeChart ActiveX 5組件。爲什麼我在繪製TeeChart ActiveX 5組件時遇到「Canvas does not allow drawing」?

我通過組件的「Canvas」屬性使用方法Line(),Rectangle()Circle()進行一些繪圖。

我的組件的每個OnBeforeDrawSeries()OnAfterDraw()事件都會調用我的繪圖代碼。

當只有少數圖紙時,它工作正常。但是當繪圖數量增加並經過一定數量的重繪後,我得到一個MessageBox,錯誤「畫布不允許繪製」,並且應用程序退出

我相信這在某種程度上是由於用繪圖調用「超載」該組件。

我是否以錯誤的方式使用此功能,或者我可以認爲這是組件中的BUG?

回答

1

我會考慮這個錯誤,因爲我有一個類似的問題(不是用Canvas)與這個組件和它管理內存的方式。

在有少量RAM的機器上,當我們創建大量圖形並顯示它們時,我們將收到一條消息框,其中包含「沒有足夠的存儲空間來處理此命令」。一旦出現此框,就不可能關閉此框,因爲如果單擊確定,消息框會一次又一次顯示。所以,你需要殺死該應用程序才能使用它。我認爲該錯誤與繪圖過程有關,因爲當我們關閉消息框時,組件會嘗試重新繪製顯示消息框的區域,並再次發生錯誤。

首先,你知道TeeChart ActiveX現在是版本8.也許這個版本解決了這個問題。

我建議也嘗試.NET版本的TeeChart。根據我自己的經驗,TeeChart .NET沒有任何內存問題,因爲內存是由.NET框架管理的。

+0

不幸的是TeeChart .NET對我而言太慢了。我需要繪製很多點的系列,並且TeeChart ActiveX的性能更好。 – Jonas 2008-09-22 18:00:33