The code seems correct to me but don't forget to release the resources (use the
using
keyword or
Dispose
method). You're maybe facing a memory problem because of that. For example:
using (Graphics g = Graphics.FromImage(picRestLogo.Image))
{
Pen p = new Pen(Color.FromArgb(146, 146, 146));
Rectangle panelRect = picRestLogo.ClientRectangle;
g.DrawLine(p, panelRect.Left, panelRect.Top, panelRect.Right - 1, panelRect.Top);
g.DrawLine(p, panelRect.Left, panelRect.Top, panelRect.Left, panelRect.Bottom - 1);
g.DrawLine(p, panelRect.Right - 1, panelRect.Top, panelRect.Right - 1, panelRect.Bottom - 1);
g.DrawLine(p, panelRect.Left, panelRect.Bottom - 1, panelRect.Right - 1, panelRect.Bottom - 1);
p.Dispose();
}