2014-02-17 4 views
0

Im печатает панель, которая в основном представляет собой регистрационную форму и содержит 3 небольших панели, но печатает только пустую страницу ... Я много раз пробовал, но не получал решения.Печать панели в C#

PrintDialog myPrintDialog = new PrintDialog(); 
System.Drawing.Bitmap memoryImage = new System.Drawing.Bitmap(panel_stdadmcard.Width, panel_stdadmcard.Height); 
panel_stdadmcard.DrawToBitmap(memoryImage, panel_stdadmcard.ClientRectangle); 
PrintDocument printDocument1 = new PrintDocument(); 
if (myPrintDialog.ShowDialog() == DialogResult.OK) 
{ 
    System.Drawing.Printing.PrinterSettings values; 
    values = myPrintDialog.PrinterSettings; 
    myPrintDialog.Document = printDocument1; 
    printDocument1.PrintController = new StandardPrintController(); 
    printDocument1.Print(); 
} 
printDocument1.Dispose(); 
+1

Вы, похоже, полагаетесь на телепатические способности PrintDocument. Как он знает о вашей переменной памяти? Напишите обработчик событий для своего события PrintPage. Статья библиотеки MSDN для PrintDocument не пропускает это. –

ответ

0

Изменение panel_stdadmcard.ClientRectangle в new Rectangle(0, 0, panel_stdadmcard.Width, panel_stdadmcard.Height)

1

Вы рисуете панель в растровое изображение, но вы никогда не использовать его, если этот код завершения. Вы должны реализовать PrintPage-событие printDocument. И там вы должны использовать DrawImage для рисования изображения.