這是我的代碼: 我們如何才能解決每個孩子形式獲取快照時,他們最小化?
private void button1_Click(object sender, 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 +的主題..但它們是爲了最小化窗口的應用,我是什麼現在只需要我的形式和它的孩子。由於
謝謝你的回覆..但我不是一個專業的程序員..所以我很難理解這些方法如何使用..請給我更多的細節..或只是一個例子,如果可以..加入了 –
添加細節到我的答案。 – tezzo
哦感謝上帝..你救了我的生命..最終我找到了解決這個問題的最佳途徑。我花了兩天的時間感覺疲憊不堪,這個問題..謝謝你這麼多..但還有一個關於你的想法的問題..爲什麼我們必須試試catch塊?如果我們不這樣做,會導致錯誤? –