Я создаю Label
и иногда использую .DrawToBitmap()
. Я не знаю почему, но после того, как я некоторое время запускаю свою программу (и часто звоню .DrawToBitmap()
), я получаю исключение:
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
. Даже если я не использую его в Bitmap, все в порядке. Оба ответа великолепны, я могу принять только один из них:(