3

Windowsフォームを印刷する方法に関するMSDNのコード例を使用して、最初にプリンターオプションを表示してから印刷するように変更しましたが、空白のページを受け取り続けます。を使用しCopyFromScreenて、フォームのソース X と Y の座標を指定していますが、宛先について0this.Location.X & Y. 画像をキャプチャする別の方法はありますか?

private void printButton_Click(object sender, EventArgs e)
    {
        CaptureScreen();

        printDialog1.AllowSomePages = true;

        printDialog1.ShowHelp = true;

        printDialog1.Document = printDoc1;

        DialogResult result = printDialog1.ShowDialog();

        if (result == DialogResult.OK)
        {
            printDoc1.Print();
        }
    }        

 private void CaptureScreen()
    {
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(memoryImage);
        memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
    }

void printDoc1_PrintPage(object sender, PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(memoryImage, 0, 0);
    }
4

0 に答える 0