public static Image GetMap(Panel pnl) { int w, h; if (pnl.VerticalScroll.Visible && pnl.HorizontalScroll.Visible) { w = pnl.HorizontalScroll.Maximum; h = pnl.VerticalScroll.Maximum; } else if (pnl.VerticalScroll.Visible && !pnl.HorizontalScroll.Visible) { w = pnl.Width - SystemInformation.VerticalScrollBarWidth; h = pnl.VerticalScroll.Maximum; } else if (!pnl.VerticalScroll.Visible && pnl.HorizontalScroll.Visible) { w = pnl.HorizontalScroll.Maximum; h = pnl.Height - SystemInformation.HorizontalScrollBarHeight; } else { w = pnl.Width; h = pnl.Height; } Image m = new Bitmap(w, h); Graphics g = Graphics.FromImage(m); g.Clear(pnl.BackColor); foreach (Control c in pnl.Controls) { Bitmap b = new Bitmap(c.Width, c.Height); c.DrawToBitmap(b, new Rectangle(new Point(0, 0), c.Size)); g.DrawImage(b, c.Location); } return m; }