首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何截取隐藏在另一个winform后面的winform?

如何截取隐藏在另一个winform后面的winform?
EN

Stack Overflow用户
提问于 2012-08-17 00:09:07
回答 1查看 1.2K关注 0票数 1

我需要屏幕捕获一个winform,它在另一个窗口的后面或前面,没有其他东西。

我可以截取一个winform的屏幕,但它基本上可以截取该区域中的所有内容。

下面是我的屏幕截图方法。

代码语言:javascript
复制
method ControlWin.capturescreen;
begin
        var myGraphics := self.CreateGraphics;
        var memoryGraphics := self.CreateGraphics;
        var s := self.Size;
        ControlScreen := new Bitmap(s.Width, s.Height, myGraphics);
        memoryGraphics := Graphics.FromImage(ControlScreen);
        memoryGraphics.CopyFromScreen(self.Location.X, self.Location.Y, 0, 0, s);
end;

下面是它的外观:

C#或delphi-prism中的任何提示或线索都将非常感谢。谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-17 02:37:43

这在C#中起到了作用。

_onTopForm是TopMost设置为true的第二种形式。将其放在Form1上。

单击该按钮,Form1的屏幕截图将写入磁盘。_onTopForm将不会出现在截图中。

代码语言:javascript
复制
public partial class Form1 : Form
{
    readonly OnTopForm _onTopForm = new OnTopForm();

    public Form1()
    {
        InitializeComponent();
        _onTopForm.Show();
        _onTopForm.TopMost = true;
    }

    private void Button1Click(object sender, EventArgs e)
    {
        Bitmap bmp = new Bitmap(Width, Height);
        DrawToBitmap(bmp, new Rectangle(Point.Empty, bmp.Size));

        using (FileStream fs = new FileStream("C:\\temp\\screenshot.jpeg", FileMode.OpenOrCreate))
        {
            bmp.Save(fs, ImageFormat.Jpeg);
        }
    }
}

public partial class OnTopForm : Form
{
    public OnTopForm()
    {
        InitializeComponent();
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11991326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档