Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET中带有DataGridView的Form.Print()_Vb.net_Printing_Datagridview - Fatal编程技术网

VB.NET中带有DataGridView的Form.Print()

VB.NET中带有DataGridView的Form.Print(),vb.net,printing,datagridview,Vb.net,Printing,Datagridview,我在我的程序中打印发票,方法是启动一个我设计好样式的表单,并使用form.print()方法在加载时自动打印发票 现在这很好,但是我在表单中放置了一个DataGridView,它包含要打印在发票上的订单描述(项目列表)。这正在工作,但DataGridView有一个特定的高度,如果我的订单中有许多项目,我需要DataGridView(和表单)自动调整其高度,以显示发票上的所有项目 我不知道如何在高度上展开DataGridView,这是在我的程序中打印发票的正确方法吗 我不想使用crystal re

我在我的程序中打印发票,方法是启动一个我设计好样式的表单,并使用form.print()方法在加载时自动打印发票

现在这很好,但是我在表单中放置了一个DataGridView,它包含要打印在发票上的订单描述(项目列表)。这正在工作,但DataGridView有一个特定的高度,如果我的订单中有许多项目,我需要DataGridView(和表单)自动调整其高度,以显示发票上的所有项目

我不知道如何在高度上展开DataGridView,这是在我的程序中打印发票的正确方法吗


我不想使用crystal reports,因为我正在表单底部生成二维码,以便出纳员可以扫描它

最后我选择了PrintDocument而不是PrintForm

我唯一关心的是,我想用图像和表格打印文档,结果证明,最好的方法是在VB.NET中创建一个Word文档,并处理其中的数据,然后打印该文档


感谢大家对我的问题发表评论并帮助我解决问题。

1)System.Windows.Forms.Form类没有打印方法。2)
GridView
DataGridView
不同。3) 你愿意分享一些相关的代码吗?@Bjørn RogerKringsjå你是对的这是一个DataGridView。我刚刚在上面的问题中解决了这个问题。我有“导入系统。绘图。打印”也许你需要它才能工作。这个问题的代码很长,对这个问题没有帮助。我只需要一个一般性的答案。在VB.NET中通过打印表单打印发票是正确的还是有其他方法?在这两种情况下,我们能自动扩展DataGridView的高度而不是静态高度吗?(当然,通过计算行数并为每个行指定一个像素高度,但这可以做到吗?)不可能回答您的问题,因为我们不知道如何“打印表单”。
系统.Drawing.Printing
中没有扩展的
表单.Print
方法。所以我唯一的建议是你看看这个类,他使用的是PrintForm组件。很明显,当窗体的网格显示的行数超过窗体所能容纳的行数时,它将完全耗尽所有的气体。这确实意味着他必须停止使用PrintForm,开始使用PrintDocument,没有两种方法。QR扫描器也会工作得更好。谢谢大家,你们说得对,它变成了一个组件,最好使用PrintDocument。你能不能把它作为一个答案发出来,让我接受它,并附上一个我以后可以参考的示例代码?我发现的例子是纯文本的,如果你有一个表格和图像的例子,那将是完美的。再次感谢