Tag: 措施

如何在打印之前预先测量字符串?

您好,我正在学习使用C#VS 2010 EE进行编程,我正在编写一个应用程序来填充预打印表单。 这个表格在不同的坐标中有几个地方。 纸上的三个盒子是多行5“W x 2”H盒子。 我已经为纸质表单上的每个位置创建了一个带有一个TextBox的窗体。 问题是当在这些多行文本框中输入信息时,我需要知道在纸上留下多少行以输入更多文本,以及何时停止输入,因为PrePrinted框中没有更多可用空间。 我做了很多搜索,但我发现的一切都是关于在屏幕上进行测量,这与纸张上的最终结果不符。 换句话说,我需要知道如何在输入TextBoxes时找出纸张上的字符串尺寸,并将其与PrePrinted表单上的可用空间进行比较,这样我就可以在它经过之前停止在纸上的框的底部边框。 纸上的第一个盒子的高度为5英寸,宽度为2英寸,从“ new RectangleF(60.0F, 200.0F, 560.0F, 200.0F) ”开始。 我明白这些数字是百分之一英寸。 所有这一切,考虑到我不能通过字符数限制TextBoxes,因为并非所有字符占据相同的空间,如H != I; M != l; 等等 预先感谢您的帮助。 今天是2011年9月5日,基于您的意见和建议,我已将代码更改为使用Graphics.MeasureString。 这是我现在使用Graphics.MeasureString和只有一个richTextBox的代码:从printDocument1_PrintPage事件中完美运行, 但我不知道如何使它从richTextBox1_TextChanged事件中运行 。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing;//Needed for the PrintDocument() using System.Linq; using System.Text; using System.Windows.Forms; namespace Printing { […]