我在panel中方了一些控件,我如何才能做到把整个panel(包括里面的控件)保存成一个图片?

解决方案 »

  1.   

    Graphics g1 = panel1.CreateGraphics();
                Image myImage = new Bitmap(this.panel1.Width, this.panel1.Height, g1);
                Graphics g2 = Graphics.FromImage(myImage);
                IntPtr dc1 = g1.GetHdc();
                IntPtr dc2 = g2.GetHdc();
                BitBlt(dc2, 0, 0, this.panel1.Width, this.panel1.Height, dc1, 0, 0, 13369376);
                g1.ReleaseHdc(dc1);
                g2.ReleaseHdc(dc2);
                myImage.Save(@"e:\1.bmp", ImageFormat.Bmp);[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
            private static extern bool BitBlt(
                 IntPtr hdcDest, // handle to destination DC
                 int nXDest, // x-coord of destination upper-left corner
                 int nYDest, // y-coord of destination upper-left corner
                 int nWidth, // width of destination rectangle
                 int nHeight, // height of destination rectangle
                 IntPtr hdcSrc, // handle to source DC
                 int nXSrc, // x-coordinate of source upper-left corner
                 int nYSrc, // y-coordinate of source upper-left corner
                 System.Int32 dwRop // raster operation code
            );