2015-06-22 63 views
1

我有一個使用GDI繪製幾個矩形的項目。我使用i++ from i=0 to i<=10。我使用。我通過調用Graphics.Invalidate() 刷新繪製的矩形每1/10s我的問題是,當繪製更多4個矩形時,我的圖片框被劃掉。我想這是因爲圖片盒內存不足。 我能對付它嗎?將圖片框劃掉C#

Thx提前:d

+1

如果沒有代碼,它將不可能被告知,那麼「劃掉」是什麼意思? – Sayse

+2

請顯示(部分)您的代碼。我認爲這個問題不在記憶中。 – cyberj0g

+0

winforms控件中的紅叉意味着在GDI +中出現了一個本地異常,您可能不會將資源當作筆,畫筆等處理,或者可能會在您的自定義畫圖處理程序中發生異常,將它包裝在嘗試捕獲並在catch語句中放置一個斷點,以查看自己的代碼是否失敗 –

回答

1

未捕獲的異常控制的塗料中被拋出,將出現此紅色交叉。造成這種情況的最常見的原因是,人們已將自定義處理程序附加到控件的Paint事件中,並且在附加代碼中存在一個錯誤,導致拋出異常。

try...catch塊圍住您的自定義繪製邏輯,並將異常記錄到您喜歡的位置(Debug.WriteLine(),文件等)以進行調查。

這是一個副產品:紅色十字將立刻消失,因爲異常不再傳遞到控件的繪圖例程。