Im пытается получить кнопку, чтобы распечатать мою текущую форму и попробовал весь код, который я могу найти здесь, но он продолжает печатать пустые страницы, и я не могу понять почему.Печать формы в приложении Windows
код я использую следующие
Bitmap bitmap;
private void btnPrint_Click(object sender, EventArgs e)
{
//Add a Panel control.
Panel panel = new Panel();
this.Controls.Add(panel);
//Create a Bitmap of size same as that of the Form.
Graphics grp = panel.CreateGraphics();
Size formSize = this.ClientSize;
bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
grp = Graphics.FromImage(bitmap);
//Copy screen area that that the Panel covers.
Point panelLocation = PointToScreen(panel.Location);
grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
//Show the Print Preview Dialog.
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.PrintPreviewControl.Zoom = 1;
printPreviewDialog1.ShowDialog();
}
private void PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//Print the contents.
e.Graphics.DrawImage(bitmap, 0, 0);
}
Это работает от кнопки (btnPrint), которая находится на форме (Form2) наряду с нагрузками текстовых и графических)
При нажатии она приносит в диалоговом окне предварительного просмотра печати, но страница пуста. Если я нажму на печать, он напечатает пустую страницу.
Любая идея, почему она не копирует форму?
Вы взломали этот код смерти баловаться с этой панелью. Обработчик событий для обработчика события printDocument1.PrintPage выглядит плохо. Используйте отладчик, установите контрольную точку в обработчике событий PrintPage. С предсказанием, что он не сломается. Дважды щелкните компонент printDocument1 в конструкторе, чтобы добавить обработчик событий. –
Или еще лучше: выбросьте все это и напишите приличную рутину печати, вместо того, чтобы сбрасывать разрешение экрана на ваш принтер. – TaW
Извините, что я очень новичок в этом. Я просто использовал этот код прямо из статьи здесь и просто не мог " я вижу, где он не работал –