Трудно сказать наверняка без остальной части кода, но похоже, что код, который вы опубликовали, создает изображение самой формы, а не TableLayoutPanel
, которую вы хотите распечатать. Когда вы используете this
keyword, он ссылается на текущий экземпляр класса, содержащего ваш код; предположительно это ваш Form
, который не является тем, что вы хотите распечатать (но объясняет, почему он показывает все это).
Вместо этого вы можете просто создать изображение TableLayoutPanel
(используя его DrawToBitmap
method) и распечатать это. Нет необходимости создавать объект Graphics
или указать точные координаты местоположения экрана, которое вы хотите скопировать. Например:
//Create a temporary image to draw into
//with the dimensions of your TableLayoutPanel
using (Bitmap printImage = new Bitmap(myTableLayoutPanel.Width, myTableLayoutPanel.Height))
{
//Draw the TableLayoutPanel control to the temporary bitmap image
myTableLayoutPanel.DrawToBitmap(printImage, new Rectangle(0, 0, printImage.Width, printImage.Height));
//(...your code continues here, except that now you
// will print the temporary image you just created)
printPreviewDialog1.Document = PrintDoc1;
PrintDoc1.PrintPage += printDocument2_PrintPage;
printPreviewDialog1.ShowDialog()
}
Я не могу сказать от кода, который размещен, как именно вы передаете изображение, которое должно быть напечатано в вашем окне предварительного просмотра печати, но тем не менее вы получили его работы с memoryImage
прежде, чем должен работайте с новым printImage
в приведенном выше примере кода.
Обратите внимание, что метод DrawToBitmap
не нарисует контроль ребенка TextBox
если его свойство Visible
устанавливается в False
, и что ваши средства управления будут разыграны в обратном порядке. Вам нужно будет убедиться, что это внешний вид приемлемо для вашего приложения, но чаще всего это самый простой способ.
Я предполагаю из названия, что белая часть является 'TableLayoutPanel', и единственное, что вы хотите напечатать, это то, что, правильно? –
Да, ты прав. Не могли бы вы рассказать мне, как я могу это сделать? – Dusk