C#winform panel1截屏 或者是 保存某个控件为图片(解决有些不显示控件的问题)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
using System.Net;
using ThoughtWorks.QRCode.Codec;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
上面是添加引用
这里是添加到空白处
[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
);
这里是添加到 按钮中
private void button13_Click(object sender, EventArgs e)
{
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(@"NewImage.bmp ", ImageFormat.Bmp);
}