如何使用UserControl获取表单的屏幕截图

本文关键字:屏幕截图 表单 获取 何使用 UserControl | 更新日期: 2023-09-27 18:28:18

我想获得应用程序MainForm的屏幕截图。我使用以下代码。

Bitmap bitmap = new Bitmap(MainForm.Width, MainForm.Height);
DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
pictureBox1.Image = bitmap;

我在MainForm中有一些用户控件。我只能使用上面的代码获得MainForm的屏幕截图。我无法获取用户控件的屏幕截图。

有人能建议我如何使用窗体的用户控件获取Windows窗体的屏幕截图吗?

如何使用UserControl获取表单的屏幕截图

这应该做到:

private void CaptureForm()
{
    var bmp = new Bitmap(MainForm.Width, MainForm.Height, PixelFormat.Format32bppArgb);
    var g = Graphics.FromImage(bmp);
    g.CopyFromScreen(MainForm.Location.X, MainForm.Location.Y, 0, 0,
                    MainForm.Size, CopyPixelOperation.SourceCopy);
    //Clipboard.SetImage(bmp);
    pictureBox1.Image = bmp;
}