如何检测特定字符串是否适合或占据 Crystal Reports/VB.NET/SQL 文本框中的第二行?

How do you detect if a specific string will either fit or take up a second line in a textbox in Crystal Reports/VB.NET/SQL?

所以基本上我有一个具有特定宽度的文本框,我需要知道我将放入其中的字符串是否适合放在一行中或占用第二行。例如:我有

string v = "WERTYUIOSDFGHJKWERTYUISDFGHJKXCVBNSDFGHJ"

和一个宽度为 3000 的文本框。

起初我试过:if v.length = x then... 其中 x 是可以放入文本框的字符串的长度。但我很快发现,与大多数 'M' 的字符串相比,大多数 'I' 的字符串可以容纳更多内容。这就是问题所在。是否有检测字符串是否要 take/need 第二行的函数?

另一种选择是创建或使用第 3 方 Crystal 报告 UFL(用户函数库)。第 3 方 UFL 列表由 Ken Hamady here.

维护

这些 UFL 中至少有一个提供允许 Crystal 公式的函数:

一个。指定作为输入的文本、字体名称、字体大小、粗体和斜体状态并获得所需的宽度(以像素或缇为单位),或

b。指定文本的可用宽度并获取适合的最大字体大小,或给定字体大小所需的行数。

使用 UFL 方法的优点是 Crystal 支持动态 属性 表达式。也就是说函数调用的结果可以动态控制一个属性比如字体大小、高度、位置等