【发布时间】:2012-08-14 15:42:26
【问题描述】:
当谈到空白时,我太困惑了。我正在尝试调整字符串,但它不会与我合作。
我想打印一个datagridview,所以我有列标题,下面是实际行。无论我如何尝试确定填充字符串的确切长度或宽度,它要么太短要么太长。因此,在发送到打印机之前,我无法将值与列标题对齐。
如果我只是执行以下操作:
thestring := '.NET is cool';
thestring := thestring.padright(100); //thestring = too short = '.NET is cool '
如果我这样做:
var tmpstr := '=';
tmpstr := tmpstr.PadRight(15); //total length of characters is 15
var swidth := int32(ev.Graphics.Measurestring(tmpstr,new Font('Arial',9)).Width);
thestring := '.NET is cool';
thestring := theString.padright(swidth); //thestring = too long = '.NET is cool
'
当您传入实际字符而不是空格时,PadRight 或 PadLeft 似乎可以正常工作,但我可能是错的。
任何意见或帮助将不胜感激。
【问题讨论】:
-
使用单元格对齐不是更好吗?当使用像 Arial 这样的可变宽度字体时,它永远不会看起来很正确。如果您解释您要完成的工作,可能会有所帮助。可能有更好的方法来解决它。
-
@LarsTech 我正在尝试打印 datagridview 表,我正在使用 PrintDocument 来执行此操作。它可以工作,但我无法对齐文本和列标题。
-
print a datagridview— 错过了那条线。然后您可能想要添加一些打印代码。我会尝试在打印纸上将每一列变成一个矩形,然后将对齐格式应用于 DrawString 函数。
标签: .net string whitespace padding delphi-prism