public static Bitmap DrawControl(Control control)
{
var b = new Bitmap(control.Width, control.Height);
Graphics g = Graphics.FromImage(b);
IntPtr hdc = g.GetHdc();
NativeMethods.SendMessage(control.Handle, (int) WindowMessage.WM_PRINT, (int) hdc,
(int) (WMPrintFlags.PRF_CLIENT | WMPrintFlags.PRF_ERASEBKGND));
g.ReleaseHdc(hdc);
g.Dispose();
return b;
}