繁体   English   中英

在表单后面截屏吗?

[英]Take screenshot of screen behind form?

我正在尝试使用屏幕形式的屏幕截图, 但是我不希望我的表单包含在屏幕截图中。 这是我当前获取屏幕截图的代码。

Bitmap bt;
Graphics screenshot;
private void button1_Click_1(object sender, EventArgs e)
{
    this.Opacity = 0;
    bt = new Bitmap(Screen.FromControl(this).Bounds.Width, Screen.FromControl(this).Bounds.Height, PixelFormat.Format32bppArgb);
    screenshot = Graphics.FromImage(bt);
    screenshot.CopyFromScreen(Screen.FromControl(this).Bounds.X, Screen.FromControl(this).Bounds.Y, 0, 0, Screen.FromControl(this).Bounds.Size, CopyPixelOperation.SourceCopy);
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    pictureBox1.Image = bt;
    this.Opacity = 1;
}

这在一定程度上可行,但是问题是当我这样做时,每次都会导致屏幕闪烁。 有什么方法可以使它不包含我的表单,但仍保留所有内容吗?

您不能对表单背后的内容进行截图,但可以隐藏表单,进行屏幕截图并再次显示表单。 这个怎么做:

  1. 隐藏表格
  2. 等待一段时间,直到重新粉刷屏幕。
  3. 截屏。
  4. 显示您的表格。

您应该使用Timer类使2异步。

祝您工作顺利。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM