把窗户带到顶部

时间:2013-03-11 13:53:41

标签: c# winforms

我正在尝试将我的表单放到顶部,截取屏幕截图,保存它,然后使用以下代码将其最小化。

            this.WindowState = FormWindowState.Maximized;
            this.FormBorderStyle = FormBorderStyle.None;
            this.TopMost = true;

            Application.DoEvents();

            string keys = "%" + "{PrtSc}";
            SendKeys.SendWait(keys);
            Clipboard.GetImage().Save(imagePath, ImageFormat.Jpeg);

            this.FormBorderStyle = FormBorderStyle.Sizable;
            this.WindowState = FormWindowState.Minimized;
            this.TopMost = false;

我认为代码将始终将窗口置于顶部并截取屏幕截图。但是我注意到它不是100%工作: 机器太慢,所以当执行窗口的代码执行时,整个窗口都不会出现。 有时它没有把它带到顶部,因此pic包含一些用户活动。

如何将其完全置于顶部并等待其完成,然后截取屏幕并将其反转。

请注意,申请表中只有一个表格。

1 个答案:

答案 0 :(得分:0)

也许添加一个计时器。运行代码的第一部分(直到并包括:“Application.DoEvents();”),然后启动计时器。在刻度代码上检查“this.TopMost”状态,并且只有当它是最顶层的形式时才进行屏幕截图并停止计时器。