【发布时间】:2014-11-22 04:42:41
【问题描述】:
我需要从数据库中打印一些表格数据,我决定先将它们填充到临时 TableLayoutPanel 中,以便它为我处理可变长度。然后将其绘制到 PrintDocument,如下所示:
Using printImage As New Bitmap(Table.Width, Table.Height) 'Need to know size here
Table.DrawToBitmap(printImage, new Rectangle(0, 0, _
printImage.Width,printImage.Height)); 'But draw is here!
e.Graphics.DrawImage(printImage, New Point(0, PrintPos))
End Using
请注意,图像的大小是在实际绘制控件之前声明的。这不起作用,因为 tableLayoutPanel 的调整大小只发生在绘图时(我猜是这样)!打印预览中只绘制了表格的一部分。
我已经尝试手动设置尺寸如下:
Table.Autosize = False
Table.Size = Table.PreferredSize
但只有在调整单元格大小的情况下才会返回正确的大小,因为内容长,不会发生。还有其他方法可以在绘制控件之前获取控件的大小吗?
【问题讨论】:
标签: .net vb.net winforms tablelayoutpanel