Достаточно всего 3 строки кода
Bitmap b = new Bitmap(pnlOuter.Width, pnlOuter.Height);
pnlOuter.DrawToBitmap(b, new Rectangle(0, 0, pnlOuter.Width, pnlOuter.Height));
b.Save("D:\\bitmapImage.jpg");
pnlOuter
- это панель, содержащая все элементы управления, которые должны отображаться на изображении, с увеличенной высотой, чтобы содержать все внутренние элементы управления. В содержащей форме могут быть включены полосы прокрутки.