我正在开发一个具有多个窗体的 Windows 窗体应用程序。我想将其中一份表格打印为图像文件。
我正在使用这个例子:click
我有一个带有各种标签、文本框和一个按钮的表单。当我通过按下按钮运行 SaveAsBitmap
时,表单及其元素被正确保存为 bmp 文件(就像您截取它并保存为图像一样)。
现在,我有另一种不要显示给用户的表单。 (这是一个没有窗体边框样式的窗体。)
我想在这种形式而不是其他形式上进行 bmp 保存。但无论我将 SaveAsBitmap
方法放在该表单代码的何处,它都只保存表单的背景(不保存标签等项目)。
但是,如果我将 this.ShowDialog()
放在某处以显示表单,然后运行 SaveAsBitmap
方法,它就会正常工作。
所以这里的重点是当表单未显示时它无法正常工作。
当使用SaveAsBitmap
方法时,我这样写:SaveAsBitmap(this, "C:\\test.bmp");
感谢任何帮助!
最佳答案
这对我有用;
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");
}
关于c# - 未显示窗体时,窗体的保存位图/"screenshot"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685585/