2016-04-25 3 views
0

В моей программе есть две формы: Form A и Form B.C# программно форма изображения

Существует кнопка в Form A, которая может снимать снимок экрана Form B (без запуска Form B).

Однако компоненты Form B созданы в функции.

Я использую приведенный ниже код, чтобы снять снимок экрана Form B, но он генерирует только Form B изображение без какого-либо его компонента.

Bitmap b = new Bitmap(1280, 720); 
formB.ManualLoad(); 
formB.DrawToBitmap(b, new Rectangle(0, 0, 1280, 720)); 
b.Save("D:\\Test.bmp"); 

Функция Manuaload() находится ниже.

public void ManualLoad() 
{ 
    formB_Load(null, null); 
    formB_Resize(null, null); 
    Invalidate(); 
} 

Как исправить проблему?

+0

форма не отображается так 'Paint' событий формы не срабатывает и управления не рисуются. Я не уверен, что вы можете сделать скриншот, не показывая форму ... – Nino

+0

Это не будет так, как форма не нарисована. Вы должны показать форму, чтобы сделать снимок экрана – Nitin

+0

Есть ли конкретная причина, по которой вы не хотите формировать B? Else, я бы предложил просто показать его, а затем сделать печатный экран – Kyra

ответ

3

Я думаю

formB_Load (NULL, NULL); и formB_Resize (null, null);

Интс даже hanler нагрузки и размер

следующий код события будет работать

Bitmap b = new Bitmap(1280, 720); 
var form = new formB(); 
form.Visible = false; 
form.Show(); 
form.DrawToBitmap(b, new Rectangle(0, 0, 1280, 720)); 
form.Close(); 
b.Save("D:\\Test.bmp"); 
Смежные вопросы