我正在尝试将我的表单放到顶部,截取屏幕截图,保存它,然后使用以下代码将其最小化。
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包含一些用户活动。
如何将其完全置于顶部并等待其完成,然后截取屏幕并将其反转。
请注意,申请表中只有一个表格。
答案 0 :(得分:0)
也许添加一个计时器。运行代码的第一部分(直到并包括:“Application.DoEvents();”),然后启动计时器。在刻度代码上检查“this.TopMost”状态,并且只有当它是最顶层的形式时才进行屏幕截图并停止计时器。