1

我有一个表单,它的主面板是一个 FlowLayoutPanel,这正是我想要打印的(它被设计成看起来像一个格式很好的文档......没有按钮等......你右键单击命令)。

因此,我利用 DrawToBitmap 实现几乎免费的打印...针对该尺寸正确流动其内容。然后,我只使用 DrawToBitmap 将该 FlowLayoutPanel 及其所有内容呈现到打印页面。我什至可以通过将窗口增大到大于页面大小(相同的纵横比)来缩放以适应,然后缩小从 DrawToBitmap 获得的位图。效果很好...

但它仅在您的屏幕大于页面大小时才有效!因为任何将窗体或控件的大小调整为大于屏幕大小 + 任一方向 12 像素的尝试都会被阻止。

啊!!如果您要通过拒绝调整大于屏幕的大小来扼杀它的适用性,为什么要用 DrawToBitmap 的简单性和实用性来取笑我呢?(修辞)

我的问题:

有没有办法绕过这个限制并让 Form 或 FlowLayoutPanel 调整大小大于屏幕?

如果没有,有没有办法到达 FlowLayoutPanel 的滚动表面(不仅仅是滚动到视图中的部分),以便我可以调整它的大小以匹配打印页面,并且可以在其上调用 DrawToBitmap?

如果没有,是否有其他方法可以利用我现有的布局功能进行打印?或者我是否坚持重写所有 WinForms 代码只是为了生成相同的位图,如果我的屏幕比我的打印页面大,它已经生成了?

4

1 回答 1

0

我不确定,但是否有可能虚拟地做到这一点。IE:

Dim FLP as FlowLayoutPanel = Form1.FlowLayoutPanel1
For Each flp_subobject as Object in FlowLayoutPanel.Children
    FLP.Children.Add(flp_subobject)
Next
FLP.Height = MASSIVEHEIGHT
FLP.Width = MASSIVEWIDTH
DrawToBitmapFunction(FLP)

我就是这样做的,并不是说我在超出屏幕限制等方面有很多经验。让我知道这是怎么回事,因为它几乎是当场从我的脑海中浮现出来的:D

于 2012-12-18T10:46:26.917 回答