これが私のコードです:
private void button1_Click(オブジェクト送信者, EventArgs e) { for (int i = 1; i < Application.OpenForms.Count; i++) { if (Application.OpenForms[i].WindowState == FormWindowState.Minimized) {
Application.OpenForms[i].WindowState = FormWindowState.Normal; using (var bmp = new Bitmap(Application.OpenForms[i].Width, Application.OpenForms[i].Height)) { Application.OpenForms[i].DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height)); bmp.Save(@"d:\Duong\" + Application.OpenForms[i].Text + ".png"); } Application.OpenForms[i].WindowState = FormWindowState.Minimized; } else { using (var bmp = new Bitmap(Application.OpenForms[i].Width, Application.OpenForms[i].Height)) { Application.OpenForms[i].DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height)); bmp.Save(@"d:\Duong\" + Application.OpenForms[i].Text + ".png"); } } } }
各 Application.OpenForms[i] には MdiParent があります。それらのいくつかが最小化され、いくつかがアクティブになっているときに、ボタンをクリックしてスナップショットを取得すると、各フォームのすべての画像が取得されました。ただし、最小化されたフォームは、最小化に戻る前に点滅していました。WindowState から問題が発生していることはわかっていますが、スナップショットが表示されない場合はどうすれば取得できますか?..助けてください.API GDI+ に関するトピックを見てきました..しかし、それらはウィンドウの最小化されたアプリケーションに関するものです。今すぐ必要なのは私のフォームであり、それは子供です。ありがとう