0

C# では、フォーム上にパネルがあり、その内容を印刷したいと考えています。パネルの内容は、DrawLinesメソッドからの行です。

現在、印刷プレビューで表示したり、パネル上の線を印刷したりできません。パネルの境界線が表示されます。

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);            
    panel1.CreateGraphics().DrawLines(new Pen(Color.Black),
      new Point[]{new Point(10,10),new Point(50,50)});
}

private void PrintPanel(Panel pnl)
{
  PrintDialog myPrintDialog = new PrintDialog();
  PrinterSettings values;
  values = myPrintDialog.PrinterSettings;
  myPrintDialog.Document = printDocument1;
  printDocument1.PrintController = new StandardPrintController();
  printDocument1.PrintPage += 
    new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);
  printPreviewDialog1.Document = printDocument1;
  printPreviewDialog1.ShowDialog();
  //printDocument1.Print();
  printDocument1.Dispose();
}
void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
  Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
  panel1.DrawToBitmap(bmp, new Rectangle(0, 0, panel1.Width, panel1.Height));
  e.Graphics.DrawImage(bmp, panel1.Width, panel1.Height);
}

パネルの線が印刷プレビューまたは印刷で表示されないのはなぜですか?

4

2 に答える 2

1

これが欠けていると思います。グラフィックをビットマップに渡す必要がある

Bitmap bmp = new Bitmap(Panel1.Width, Panel1.Height, Panel1.CreateGraphics());
于 2013-09-19T01:01:12.320 に答える