2016-04-25 79 views
0

在我的程序中有兩種形式,Form AForm BC#以編程方式形成圖像

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?否則,我會建議只顯示它,然後製作一個打印屏幕 – 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");