Im創建Label
,有時使用.DrawToBitmap()
。我不知道爲什麼,但是我運行後我計劃了一段時間(和調用.DrawToBitmap()
經常)我得到異常:DrawToBitmap - System.ArgumentException:參數無效
System.ArgumentException: Parameter is not valid.
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format)
at System.Drawing.Bitmap..ctor(Int32 width, Int32 height)
不知怎的,我無法調用此函數經常。如果我可以從根本上嘗試這個:
while(true)
{
System.Windows.Forms.Label label = new Label();
label.Font = new Font("Arial", 20);
label.Text = "test";
try
{
Bitmap image = new Bitmap(300, 500);
label.DrawToBitmap(image, label.ClientRectangle);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
我得到5-6秒後(1000-2000調用)的例外。問題是什麼?如何避免這種情況?
編輯:謝謝大家與Dispose()
這個想法 - 不知何故,如果我在label
上使用它,一切都很完美。即使我不使用它在位圖上的罰款。這兩個答案都很好,我只能接受其中一個:(我的
嗨。起初,我嘗試使用(位圖...)=>沒有任何改變。但是當我在每次調用結束時使用label.Dispose()時,一切都很好:)謝謝 - 用30.000次調用測試它,現在我認爲這很好。沒有label.Dispose()我在1000-2000次調用後得到異常。從來沒有想過我必須處置()標籤。 – miri 2012-08-16 22:48:01
@miri:就像@HansPassant:我以爲處置標籤會導致異常。我相信這是應該用'使用'塊包裝的字體和位圖。我不知道如何在不看標籤的情況下處理標籤。 – IAbstract 2012-08-17 14:11:12