【问题标题】:Saving bitmap/"screenshot" of form not working when form is not shown未显示表单时,保存表单的位图/“屏幕截图”不起作用
【发布时间】:2011-10-07 09:48:19
【问题描述】:

我正在开发一个具有多个窗体的 Windows 窗体应用程序。我想将其中一种表格打印为图像文件。

我正在使用这个例子:click

我有一个带有各种标签、文本框和一个按钮的表单。当我通过按下按钮运行SaveAsBitmap 时,表单及其元素被正确保存为 bmp 文件(就像您截取它并保存为图像一样)。

现在,我要向用户显示另一个的表单。 (这是一个没有表单边框样式的表单。) 我想在这个表格而不是另一个表格上保存 bmp。但是不管我把SaveAsBitmap方法放在这个表单的代码什么地方,它都只保存了表单的背景(没有标签等项目)。 但是,如果我将 this.ShowDialog() 放在某处以显示表单,然后运行 ​​SaveAsBitmap 方法,它就可以正常工作。

所以这里的重点是当表单不显示时它不能正常工作。

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

任何帮助表示赞赏!

【问题讨论】:

标签: c# winforms bitmap


【解决方案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");
}

【讨论】:

  • 感谢工作!其他人注意:在调用 Hide() 之前,我调用 Show()。
猜你喜欢
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多