2011-10-07 43 views
3

我正在开发一个窗体窗体应用程序与多种形式。我想将其中一个表单打印为图像文件。窗体不显示时保存位图/“屏幕截图”不工作

我使用这个例子:click

我有各种标签,文本框和按钮的形式。当我通过按下按钮运行SaveAsBitmap时,窗体及其元素将被正确保存为bmp文件(就像截取了它并保存为图像一样)。

现在,我有另一种形式是而不是要显示给用户。 (这是一个没有窗体边框样式的表单。) 我想在这个窗体上执行bmp保存而不是另一个。但无论在这种形式的代码中,我使用了SaveAsBitmap方法,它只保存表单的背景(不包括标签等项目)。 但是,如果我在某处放置this.ShowDialog()以显示表单,然后运行SaveAsBitmap方法,则该方法应如其操作。

所以这里的主要观点是事实上,当表单没有显示时它不能正常工作。

当使用SaveAsBitmap方法,我写:SaveAsBitmap(this, "C:\\test.bmp");

任何帮助表示赞赏!

+0

这已被问了很多次...... http://stackoverflow.com/questions/5117074/screenshot-of-hidden-window –

回答

1

这适用于我;

theForm.hide(); 
... 
using (var bitmap = new Bitmap(theForm.Width, theForm.Height)) { 
    theForm.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height)); 
    bitmap.Save(@"c:\null\ss.bmp"); 
} 
+0

谢谢你的工作!注意别人:在调用Hide()之前,我调用Show()。 – eightx2