我需要從數據庫打印一些表格數據,我決定先將這些數據填充到一個臨時的TableLayoutPanel中,以便它能夠爲我處理可變長度。然後,它被吸引到一個PrintDocument的如下: 如何在繪製之前獲取TableLayoutPanel的大小?
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
但是,只有在調整細胞的情況下返回正確的尺寸,由於長期內容,不發生。在繪製之前是否有其他方法可以獲得控件的大小?
試用了一下,SizeChanged將不會發生在所有... – jack3694078 2014-11-24 02:17:31
是否'SizeChanged'事件發生在它的任何祖先(容器)?你可能也想看看'Control.WndProc'方法。 – toddmo 2014-11-25 03:27:30