2016-10-18 5 views
-1

私のVisual Studio 2015プロジェクトでは、フォーム(タブページ)が画面よりも大きく、スクロールする必要があります。どのようにフォーム(可視領域だけでなく)全体をビットマップに描画できますか?ビットマップ全体のWindowsフォーム

Bitmap bitmap = new Bitmap(tabPage1.Width, tabPage1.Height); 
tabPage1.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height)); 

上記のコードは、フォームの表示部分のみを描画します。

答えて

0

ここで聞かれる質問と非常によく似ています:ここで

Saving Panel as JPEG, only saving visible areas c#

はこのポストから受け入れ答えである:ここでは

public void DrawControl(Control control,Bitmap bitmap) 
    { 
     control.DrawToBitmap(bitmap,control.Bounds); 
     foreach (Control childControl in control.Controls) 
     { 
      DrawControl(childControl,bitmap); 
     } 
    } 

    public void SaveBitmap() 
    { 
     Bitmap bmp = new Bitmap(this.panel1.Width, this.panel.Height); 

     this.panel.DrawToBitmap(bmp, new Rectangle(0, 0, this.panel.Width, this.panel.Height)); 
     foreach (Control control in panel1.Controls) 
     { 
      DrawControl(control, bmp); 
     } 

     bmp.Save("d:\\panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 
    } 

を以下

てみてください、私の結果であり、 :

フォームのスクリーンショット

enter image description here

保存したビットマップ:あなたが見ることができるように

enter image description here

があるのTextBoxウィッヒは、フォームに表示されていないですが、保存されたビットマップ

に存在しています
関連する問題