C# で WinForm の印刷画面を作成し、PNG としてエクスポートする方法が必要です。
ベスト
このブログ記事が役立つと思います。
using (Bitmap bitmap = new Bitmap(ParentForm.Size.Width, ParentForm.Size.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(new Point(ParentForm.DesktopLocation.X, ParentForm.DesktopLocation.Y), new Point(0, 0), ParentForm.Size);
}
bitmap.Save(@"C:\test.jpg", ImageFormat.Jpeg);
}
OnPaint(args)
試したことはありませんが、描画したい画像の Graphics と、フォームの全領域を囲む ClipRectangle を含む、作成した PaintEventArgs で呼び出すことができるはずだと思います。
これは、フォームがペイント メッセージを適切に処理する場合 (つまり、ウィンドウを自由に完全に再描画できる十分な情報を格納している場合) にのみ機能し、クライアント領域のみを取得する場合があります (つまり、タイトル バーまたはメニュー)。