Сохранение растрового изображения / «скриншота» формы не работает, когда форма не отображается - PullRequest
3 голосов
/ 07 октября 2011

Я занимаюсь разработкой приложения для форм Windows с несколькими формами.Я хотел бы напечатать одну из форм в виде файла изображения.

Я использую этот пример: click

У меня есть форма с различными ярлыками, текстовыми полями икнопка.Когда я запускаю SaveAsBitmap нажатием кнопки, форма и ее элементы правильно сохраняются в виде файла bmp (как если бы вы сделали его снимок экрана и сохранили его как изображение).

Теперь у меня естьдругая форма, которая не , будет показана пользователю.(Это форма без стиля границы формы.) Я бы хотел сохранить bmp в этой форме, а не в другой.Но независимо от того, где в коде этой формы я поместил метод SaveAsBitmap, он сохраняет только фон формы (без элементов, таких как метки).Тем не менее, если я положу this.ShowDialog() куда-нибудь, чтобы показать форму, а затем запусту метод SaveAsBitmap, он будет работать как надо.

Таким образом, главное здесь то, что он делаетне работает правильно, когда форма не отображается.

При использовании метода SaveAsBitmap я пишу: SaveAsBitmap(this, "C:\\test.bmp");

Любая помощь приветствуется!

1 Ответ

1 голос
/ 07 октября 2011

Это работает для меня;

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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...