如何在Windows窗体中打印带有标签的tablelayoutpanel

时间:2016-11-19 11:00:19

标签: c# label tablelayoutpanel printdocument

我有一个窗体,其中包含一个表格,上面有两个标签,下面还有许多其他组件 通过使用PrintDocument我想打印带有标题的表,只有那些没有显示其他组件。 This is my form

我使用的代码仅打印表格。

Bitmap printImage;
private void CaptureScreen()
{ 
    printImage = new Bitmap(tableLayoutPanel1.Width, tableLayoutPanel1.Height);
    tableLayoutPanel1.DrawToBitmap(printImage, new Rectangle(0, 0, printImage.Width, printImage.Height));
}

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.DrawImage(printImage, 0, 0);
}

如何组合标签?

1 个答案:

答案 0 :(得分:0)

在你的打印代码中,使用Graphics.MeasureString来获取标签文本的大小(或使用标签高度),用它来偏移你的位图(而不是0,0),然后使用Graphics对象绘制使用标签的Text,Forecolor和Font属性的字符串。如果要使用标签backcolor,请在绘制字符串之前执行Graphics.FillRectangle。

如果您的标签文字是自动换行的,并且您希望以这种方式进行打印,则可能需要具有创造性。