2011-10-07 41 views
3

我正在開發一個窗體窗體應用程序與多種形式。我想將其中一個表單打印爲圖像文件。窗體不顯示時保存位圖/「屏幕截圖」不工作

我使用這個例子:click

我有各種標籤,文本框和按鈕的形式。當我通過按下按鈕運行SaveAsBitmap時,窗體及其元素將被正確保存爲bmp文件(就像截取了它並保存爲圖像一樣)。

現在,我有另一種形式是而不是要顯示給用戶。 (這是一個沒有窗體邊框樣式的表單。) 我想在這個窗體上執行bmp保存而不是另一個。但無論在這種形式的代碼中,我使用了SaveAsBitmap方法,它只保存表單的背景(不包括標籤等項目)。 但是,如果我在某處放置this.ShowDialog()以顯示錶單,然後運行SaveAsBitmap方法,則該方法應如其操作。

所以這裏的主要觀點是事實上,當表單沒有顯示時它不能正常工作。

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

任何幫助表示讚賞!

+0

這已被問了很多次...... http://stackoverflow.com/questions/5117074/screenshot-of-hidden-window –

回答

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"); 
} 
+0

謝謝你的工作!注意別人:在調用Hide()之前,我調用Show()。 – eightx2