2013-02-05 3 views
0

MdiChild에서 pictureBox의 내용을 인쇄하려고합니다. 코드를 디버깅하면 PrintPage 이벤트가 실행되지 않는 것처럼 보입니다. 저는 주로이 코드를 프로젝트에 사용했습니다 : printing content of a pictureboxMdiChild에서 pictureBox 인쇄

무엇이 잘못 되었습니까? 폼의 생성자에서

private void stampaToolStripMenuItem_Click(object sender, EventArgs e) 
    { 

     Form2 activeChild = this.ActiveMdiChild as Form2; 
     PictureBox theBox = (PictureBox)activeChild.pictureBox1; 
     dastampare = theBox.Image as Bitmap; 
     printDocument1.OriginAtMargins = true; 
     printDocument1.DocumentName = "Prova"; 
     printDialog1.Document = printDocument1; 
     printDialog1.ShowDialog(); 
     if (printDialog1.ShowDialog() == DialogResult.OK) 
     { 
      printDocument1.Print(); 
     } 
    } 

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
    { 
     e.Graphics.DrawImage(dastampare, 0, 0); 
    } 
+1

참고 :

여기 내 코드입니다 당신은'printDialog1.ShowDialog()'두 번 호출된다. 디버거가 PrintPage 이벤트가 아니라'printDocument1.Print();'라인에 도달했다면 이벤트 핸들러를 유선 상태로 만들지 않았을 가능성이 큽니다. – LarsTech

+0

당신은 절대적으로 LarsTech입니다. printDialog1.ShowDialog()를 제거하는 문제를 해결했습니다. 여전히 PrintPage 이벤트를 트리거 할 수 없습니다. : ( – Podarce

답변

0

의 이벤트 핸들러를 배선하십시오 :

public Form1() { 
    InitializeComponent(); 
    printDocument1.PrintPage += printDocument1_PrintPage; 
} 
+0

그것은 완벽하게 작동합니다! 많은 감사합니다 LarsTech! – Podarce